feat(eoi-generate): Include-yacht toggle to omit Section 3 when yacht is a placeholder
EoiGenerateDialog gains an inline "Include on EOI" checkbox in the Section 3 header (renders only when ctx.yacht is set; defaults ON so existing behaviour is unchanged). When OFF, the generate-and-sign POST flips includeYachtDetails=false on the body; service blanks eoiContext.yacht before either pathway runs: - Documenso template payload: buildDocumensoPayload reads no yacht so yacht.* and owner.* merge fields ship empty. Existing template tolerates blanks per the "left blank if absent" copy. - In-app PDF fill (pdf-lib): generateEoiPdfFromTemplate sees no yacht so AcroForm field writes for the yacht block are skipped. Persists the rep's choice in the document-create audit log (metadata.includeYachtDetails) so an audit trail records explicit opt-outs even though documents has no JSONB metadata column today. ft/m unit toggle in the Section 3 header now hides when Include is OFF (unit choice is meaningless without yacht details). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -109,6 +109,14 @@ export const generateAndSignSchema = generateSchema.extend({
|
||||
* EOI's Length/Width/Draft formValues. The drawer's toggle drives this;
|
||||
* server defaults to the yacht's `lengthUnit` column when omitted. */
|
||||
dimensionUnit: z.enum(['ft', 'm']).optional(),
|
||||
/** Optional Section 3 (yacht details) inclusion. Defaults to true when a
|
||||
* yacht is linked. Rep can flip OFF in the dialog to blank out yacht.*
|
||||
* + owner.* merge fields even though a yacht is on file — used when the
|
||||
* yacht is a placeholder, multi-berth deals where yacht-specific dims
|
||||
* don't apply, or the client explicitly asked for the section to stay
|
||||
* off the document. Persisted in `documents.metadata.includeYachtDetails`
|
||||
* for audit. */
|
||||
includeYachtDetails: z.boolean().optional(),
|
||||
/** Phase 3b/3-follow-up - optional per-field overrides applied at generation. */
|
||||
overrides: z
|
||||
.object({
|
||||
|
||||
Reference in New Issue
Block a user