diff --git a/teressa-copeland-homes/src/app/api/documents/[id]/prepare/route.ts b/teressa-copeland-homes/src/app/api/documents/[id]/prepare/route.ts index 4b9af1b..6d7e874 100644 --- a/teressa-copeland-homes/src/app/api/documents/[id]/prepare/route.ts +++ b/teressa-copeland-homes/src/app/api/documents/[id]/prepare/route.ts @@ -40,12 +40,13 @@ export async function POST( const sigFields = (doc.signatureFields as import('@/lib/db/schema').SignatureFieldData[]) ?? []; const textFields = body.textFillData ?? {}; - // Fetch agent's saved signature for embedding at agent-signature field coordinates + // Fetch agent's saved signature and initials for embedding at agent-owned field coordinates const agentUser = await db.query.users.findFirst({ where: eq(users.id, session.user.id), - columns: { agentSignatureData: true }, + columns: { agentSignatureData: true, agentInitialsData: true }, }); const agentSignatureData = agentUser?.agentSignatureData ?? null; + const agentInitialsData = agentUser?.agentInitialsData ?? null; // Guard: if document has agent-signature fields but no signature saved, block prepare const hasAgentSigFields = sigFields.some(f => getFieldType(f) === 'agent-signature'); @@ -56,7 +57,16 @@ export async function POST( ); } - await preparePdf(srcPath, destPath, textFields, sigFields, agentSignatureData); + // Guard: agent-initials fields present but no initials saved + const hasAgentInitialsFields = sigFields.some(f => getFieldType(f) === 'agent-initials'); + if (hasAgentInitialsFields && !agentInitialsData) { + return Response.json( + { error: 'agent-initials-missing', message: 'No agent initials saved. Go to Profile to save your initials first.' }, + { status: 422 } + ); + } + + await preparePdf(srcPath, destPath, textFields, sigFields, agentSignatureData, agentInitialsData); const [updated] = await db .update(documents)