From 2a2673e3287242cf2a05529200e9c45d28eda8b7 Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 14 May 2026 15:50:56 +0200 Subject: [PATCH] =?UTF-8?q?refactor(terminology):=20"deal"=20=E2=86=92=20"?= =?UTF-8?q?interest"=20sweep=20+=20route=20rename?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Step 7 per PRE-DEPLOY-PLAN § 1.7. The canonical noun for an in-flight sales record is "interest" everywhere in the codebase — entity name, schema, kanban label, URL, etc. Customer-visible "deal" remnants are either a holdover from pre-refactor copy or hand-written admin descriptions that drifted. Sweeps applied: - /admin/qualification-criteria description: "before a deal moves out of the Enquiry stage" → "before an interest moves out…" - /admin/documenso descriptions (×3): "per-deal upload-and-place…" → "per-interest upload-and-place…"; "upload per deal" → "upload per interest"; "drafted per deal" → "drafted per interest". - bulk-archive-wizard.tsx placeholder: "late-stage deal" → "late-stage interest". - smart-archive-dialog.tsx title: "Late-stage deal" → "Late-stage interest". - /api/v1/berths/[id]/deal-documents → /api/v1/berths/[id]/interest-documents (route directory renamed; the single in-tree caller in berth-deal-documents-tab.tsx updated to match; React Query key also switched to "berth-interest-documents" for cache hygiene). The `BerthDealDocumentsTab` component name + `berth-deal-documents-tab.tsx` file path are intentionally left as-is — pure aliases, internal to the codebase, churn cost > readability win. Rename when next touched. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/app/(dashboard)/[portSlug]/admin/documenso/page.tsx | 6 +++--- .../[portSlug]/admin/qualification-criteria/page.tsx | 2 +- .../[id]/{deal-documents => interest-documents}/route.ts | 4 +++- src/components/berths/berth-deal-documents-tab.tsx | 4 ++-- src/components/clients/bulk-archive-wizard.tsx | 2 +- src/components/clients/smart-archive-dialog.tsx | 2 +- 6 files changed, 11 insertions(+), 9 deletions(-) rename src/app/api/v1/berths/[id]/{deal-documents => interest-documents}/route.ts (83%) diff --git a/src/app/(dashboard)/[portSlug]/admin/documenso/page.tsx b/src/app/(dashboard)/[portSlug]/admin/documenso/page.tsx index f50d0dca..70f16bc3 100644 --- a/src/app/(dashboard)/[portSlug]/admin/documenso/page.tsx +++ b/src/app/(dashboard)/[portSlug]/admin/documenso/page.tsx @@ -152,7 +152,7 @@ const CONTRACT_RESERVATION_FIELDS: SettingFieldDef[] = [ key: 'documenso_contract_template_id', label: 'Contract Documenso template ID (optional)', description: - 'Numeric template ID for sales contract generation. Leave blank to use the per-deal upload-and-place-fields flow instead (the typical path for contracts, since they are usually drafted custom per client).', + 'Numeric template ID for sales contract generation. Leave blank to use the per-interest upload-and-place-fields flow instead (the typical path for contracts, since they are usually drafted custom per client).', type: 'string', placeholder: '', defaultValue: '', @@ -161,7 +161,7 @@ const CONTRACT_RESERVATION_FIELDS: SettingFieldDef[] = [ key: 'documenso_reservation_template_id', label: 'Reservation agreement Documenso template ID (optional)', description: - 'Numeric template ID for reservation agreements. Same logic — leave blank to upload per deal.', + 'Numeric template ID for reservation agreements. Same logic — leave blank to upload per interest.', type: 'string', placeholder: '', defaultValue: '', @@ -396,7 +396,7 @@ export default function DocumensoSettingsPage() { diff --git a/src/app/(dashboard)/[portSlug]/admin/qualification-criteria/page.tsx b/src/app/(dashboard)/[portSlug]/admin/qualification-criteria/page.tsx index ebb42832..a680adc2 100644 --- a/src/app/(dashboard)/[portSlug]/admin/qualification-criteria/page.tsx +++ b/src/app/(dashboard)/[portSlug]/admin/qualification-criteria/page.tsx @@ -7,7 +7,7 @@ export default function QualificationCriteriaPage() { diff --git a/src/app/api/v1/berths/[id]/deal-documents/route.ts b/src/app/api/v1/berths/[id]/interest-documents/route.ts similarity index 83% rename from src/app/api/v1/berths/[id]/deal-documents/route.ts rename to src/app/api/v1/berths/[id]/interest-documents/route.ts index f6e24bce..6b1a3fae 100644 --- a/src/app/api/v1/berths/[id]/deal-documents/route.ts +++ b/src/app/api/v1/berths/[id]/interest-documents/route.ts @@ -5,7 +5,9 @@ import { errorResponse, NotFoundError } from '@/lib/errors'; import { listDealDocumentsForBerth } from '@/lib/services/documents.service'; /** - * GET /api/v1/berths/[id]/deal-documents + * GET /api/v1/berths/[id]/interest-documents (renamed from + * `/deal-documents` in the 2026-05-14 terminology sweep — canonical + * noun is "interest"). * * Lists documents attached to interests currently linked to this berth. * Same permission gate as the berth page itself (berths.view). diff --git a/src/components/berths/berth-deal-documents-tab.tsx b/src/components/berths/berth-deal-documents-tab.tsx index 67b4ef0b..1f85b3e8 100644 --- a/src/components/berths/berth-deal-documents-tab.tsx +++ b/src/components/berths/berth-deal-documents-tab.tsx @@ -32,9 +32,9 @@ export function BerthDealDocumentsTab({ berthId }: { berthId: string }) { const portSlug = params?.portSlug ?? ''; const { data: docs = [], isLoading } = useQuery({ - queryKey: ['berth-deal-documents', berthId], + queryKey: ['berth-interest-documents', berthId], queryFn: () => - apiFetch<{ data: BerthDealDoc[] }>(`/api/v1/berths/${berthId}/deal-documents`).then( + apiFetch<{ data: BerthDealDoc[] }>(`/api/v1/berths/${berthId}/interest-documents`).then( (r) => r.data, ), }); diff --git a/src/components/clients/bulk-archive-wizard.tsx b/src/components/clients/bulk-archive-wizard.tsx index 420e2be0..cedeca0b 100644 --- a/src/components/clients/bulk-archive-wizard.tsx +++ b/src/components/clients/bulk-archive-wizard.tsx @@ -228,7 +228,7 @@ function BulkArchiveWizardBody({ open, onOpenChange, clientIds, onSuccess }: Pro [currentHighStakes.clientId]: e.target.value, })) } - placeholder="Why are you archiving this late-stage deal? (≥ 5 chars)" + placeholder="Why are you archiving this late-stage interest? (≥ 5 chars)" rows={3} /> diff --git a/src/components/clients/smart-archive-dialog.tsx b/src/components/clients/smart-archive-dialog.tsx index dc4d93ac..48a24eba 100644 --- a/src/components/clients/smart-archive-dialog.tsx +++ b/src/components/clients/smart-archive-dialog.tsx @@ -313,7 +313,7 @@ function SmartArchiveDialogBody({ - Late-stage deal — confirmation required + Late-stage interest — confirmation required