diff --git a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/PropertyTable.tsx b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/PropertyTable.tsx index d1e07c96..eca925e7 100644 --- a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/PropertyTable.tsx +++ b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/PropertyTable.tsx @@ -67,7 +67,11 @@ const COLUMN_LABELS: Record = { coordinationComments: "Coordination Comments", dampAndMouldGrowth: "Damp and Mould Growth", dampMouldAndRepairComments: "Damp, Mould and Repair Comments", - domnaSurveyRequested: "Domna Survey Requested" + domnaSurveyRequested: "Domna Survey Requested", + planningAuthority: "Planning Authority", + designatedArea: "Designated Area", + article4PdRights: "Article 4 PD Rights", + listedBuilding: "Listed Building", }; type DocFilter = "all" | "has_docs" | "incomplete" | "none"; @@ -114,6 +118,10 @@ export default function PropertyTable({ data, onOpenDrawer, portfolioId = "", sh dampAndMouldGrowth: false, dampMouldAndRepairComments: false, domnaSurveyRequested: false, + planningAuthority: false, + designatedArea: false, + article4PdRights: false, + listedBuilding: false, }); // Pre-filter by stage, doc status, and removal status before TanStack gets it diff --git a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/PropertyTableColumns.tsx b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/PropertyTableColumns.tsx index aa0157a2..aa1c59e7 100644 --- a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/PropertyTableColumns.tsx +++ b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/PropertyTableColumns.tsx @@ -439,6 +439,54 @@ export function createPropertyTableColumns( }, }, + // ── Planning authority ─────────────────────────────────────────────── + { + accessorKey: "planningAuthority", + id: "planningAuthority", + header: ({ column }) => , + cell: ({ row }) => ( + + {row.original.planningAuthority ?? } + + ), + }, + + // ── Designated area ────────────────────────────────────────────────── + { + accessorKey: "designatedArea", + id: "designatedArea", + header: ({ column }) => , + cell: ({ row }) => ( + + {row.original.designatedArea ?? } + + ), + }, + + // ── Article 4 PD rights ────────────────────────────────────────────── + { + accessorKey: "article4PdRights", + id: "article4PdRights", + header: ({ column }) => , + cell: ({ row }) => ( + + {row.original.article4PdRights ?? } + + ), + }, + + // ── Listed building ────────────────────────────────────────────────── + { + accessorKey: "listedBuilding", + id: "listedBuilding", + header: ({ column }) => , + cell: ({ row }) => ( + + {row.original.listedBuilding ?? } + + ), + }, + ]; if (showDocuments) { diff --git a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/dealQuery.ts b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/dealQuery.ts index 68ce00ac..72d94089 100644 --- a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/dealQuery.ts +++ b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/dealQuery.ts @@ -73,6 +73,10 @@ export function mapDbRowToHubspotDeal(row: DealRow): HubspotDeal { domnaSurveyDate: d.domnaSurveyDate, batch: d.batch, batchDescription: d.batchDescription, + planningAuthority: d.planningAuthority, + designatedArea: d.designatedArea, + article4PdRights: d.article4PdRights, + listedBuilding: d.listedBuilding, createdAt: d.createdAt, updatedAt: d.updatedAt, }; diff --git a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/docStatus.test.ts b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/docStatus.test.ts index 32d1671e..2c8d22f8 100644 --- a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/docStatus.test.ts +++ b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/docStatus.test.ts @@ -60,6 +60,10 @@ function makeDeal(overrides: Partial = {}): HubspotDeal { domnaSurveyDate: null, batch: null, batchDescription: null, + planningAuthority: null, + designatedArea: null, + article4PdRights: null, + listedBuilding: null, coordinationComments: null, domnasurveyRequired: null, createdAt: new Date(), diff --git a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/measureFilters.test.ts b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/measureFilters.test.ts index 6a30d703..51343752 100644 --- a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/measureFilters.test.ts +++ b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/measureFilters.test.ts @@ -59,6 +59,10 @@ function makeDeal(overrides: Partial = {}): ClassifiedDeal { domnaSurveyDate: null, batch: null, batchDescription: null, + planningAuthority: null, + designatedArea: null, + article4PdRights: null, + listedBuilding: null, coordinationComments: null, domnasurveyRequired: null, createdAt: new Date(), diff --git a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/propertyCsv.test.ts b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/propertyCsv.test.ts index 91501665..c96ce491 100644 --- a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/propertyCsv.test.ts +++ b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/propertyCsv.test.ts @@ -59,6 +59,10 @@ function makeDeal(overrides: Partial = {}): HubspotDeal { domnaSurveyDate: null, batch: null, batchDescription: null, + planningAuthority: null, + designatedArea: null, + article4PdRights: null, + listedBuilding: null, coordinationComments: null, domnasurveyRequired: null, createdAt: new Date(), diff --git a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/propertyCsv.ts b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/propertyCsv.ts index 1b29caab..5e8c9f09 100644 --- a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/propertyCsv.ts +++ b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/propertyCsv.ts @@ -30,6 +30,10 @@ export const PROPERTY_CSV_FIELDS: PropertyCsvField[] = [ { key: "dampMouldFlag", label: "Damp and Mould Growth" }, { key: "dampMouldAndRepairComments", label: "Damp Mould and Repair Comments" }, { key: "domnasurveyRequired", label: "Domna Survey Required" }, + { key: "planningAuthority", label: "Planning Authority" }, + { key: "designatedArea", label: "Designated Area" }, + { key: "article4PdRights", label: "Article 4 PD Rights" }, + { key: "listedBuilding", label: "Listed Building" }, ]; export function escapeCsvCell(value: unknown): string { diff --git a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/transforms.test.ts b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/transforms.test.ts index ad7bf045..8df8b962 100644 --- a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/transforms.test.ts +++ b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/transforms.test.ts @@ -66,6 +66,10 @@ function makeDeal(overrides: Partial = {}): HubspotDeal { domnaSurveyDate: null, batch: null, batchDescription: null, + planningAuthority: null, + designatedArea: null, + article4PdRights: null, + listedBuilding: null, coordinationComments: null, domnasurveyRequired: null, createdAt: new Date(), diff --git a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/types.ts b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/types.ts index aa49fe25..519a301f 100644 --- a/src/app/portfolio/[slug]/(portfolio)/your-projects/live/types.ts +++ b/src/app/portfolio/[slug]/(portfolio)/your-projects/live/types.ts @@ -71,6 +71,12 @@ export type HubspotDeal = { batch: string | null; batchDescription: string | null; + // ── Planning fields (issue: extra PM columns) ───────────────────────── + planningAuthority: string | null; + designatedArea: string | null; + article4PdRights: string | null; + listedBuilding: string | null; + createdAt: Date; updatedAt: Date; };