feat(eoi): seed Standard EOI in-app template per port
Adds a new per-port document_templates row of type 'eoi' containing an
HTML EOI / Letter of Intent body with {{section.field}} merge tokens
that mirror the EoiContext shape. Enables the in-app pdfme PDF path as
an alternative to the Documenso template flow.
- New getStandardEoiTemplateHtml() returns the Letter-sized HTML body
with Applicant / Yacht / Owner / Berth / Interest / Signatures blocks
- STANDARD_EOI_MERGE_FIELDS exported for resolveTemplate wiring (11.4)
- seed-data.ts inserts one document_templates row per port inside the
existing withTransaction block, between ownership transfers and
interests, using SEED_USER_ID for audit consistency
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -33,7 +33,12 @@ import {
|
||||
berths,
|
||||
berthReservations,
|
||||
interests,
|
||||
documentTemplates,
|
||||
} from './schema';
|
||||
import {
|
||||
getStandardEoiTemplateHtml,
|
||||
STANDARD_EOI_MERGE_FIELDS,
|
||||
} from '@/lib/pdf/templates/eoi-standard-inapp';
|
||||
|
||||
// ─── Tunables ────────────────────────────────────────────────────────────────
|
||||
|
||||
@@ -840,6 +845,21 @@ export async function seedPortData(portId: string, portSlug: string): Promise<Se
|
||||
.where(eq(yachts.id, yachtId));
|
||||
}
|
||||
|
||||
// ── 6b. Standard EOI Template (in-app PDF path) ────────────────────────
|
||||
// One row per port. Used by the in-app pdfme renderer when the port opts
|
||||
// for in-app PDF generation over the Documenso template flow.
|
||||
await tx.insert(documentTemplates).values({
|
||||
portId,
|
||||
name: 'Standard EOI (in-app)',
|
||||
description:
|
||||
'Default Expression of Interest / Letter of Intent template, rendered in-app via pdfme. Use for ports that prefer in-app PDF generation over the Documenso template path.',
|
||||
templateType: 'eoi',
|
||||
bodyHtml: getStandardEoiTemplateHtml(),
|
||||
mergeFields: STANDARD_EOI_MERGE_FIELDS,
|
||||
isActive: true,
|
||||
createdBy: SEED_USER_ID,
|
||||
});
|
||||
|
||||
// ── 7. Interests (15) ──────────────────────────────────────────────────
|
||||
// Spread across pipeline stages.
|
||||
// Valid stages (from interests schema comment):
|
||||
|
||||
Reference in New Issue
Block a user