import { getPayload } from 'payload' import configPromise from '../src/payload.config' async function run() { const payload = await getPayload({ config: configPromise }) console.log("Symulacja odebrania FormData(puste pola) na backendzie (zgodnie z logiką validateSubmission)...") const incomingData: Record = { name: "", email: "", message: "", consent: true // Pomijamy consent } console.log("Dane wejściowe (z FormData):", incomingData) const form: any = await payload.findByID({ id: 1, collection: 'forms', depth: 0 }) const fields = form.fields || [] let validationResult: any = { ok: true, cleaned: {} } for (const field of fields) { if (field.blockType === 'message') continue; const value = incomingData[field.name] const isBlank = value == null || (typeof value === 'string' && value.trim() === '') || value === false if (field.required && isBlank) { validationResult = { field: field.name, kind: 'required', ok: false, reason: 'invalid' } break; } if (value !== undefined) { validationResult.cleaned[field.name] = value } } console.log("\\n=== Wynik validateSubmission ===") console.log(JSON.stringify(validationResult, null, 2)) if (validationResult.ok) { console.log("\\nTworzenie wpisu w bazie przez payload.create (symulacja zapisu)...") const submission = await payload.create({ collection: 'form-submissions', data: { form: 1, submissionData: Object.entries(validationResult.cleaned).map(([field, value]) => ({ field, value: value == null ? '' : String(value), })) as any, } }) console.log("\\nZapisano w bazie:", JSON.stringify(submission.submissionData, null, 2)) } else { console.log("\\nFormularz odrzucony na poziomie API backendowego (validateSubmission) - rekord NIE trafił do bazy, użytkownik dostaje błąd o braku pola.") } process.exit(0) } run().catch(console.error)