diff --git a/src/data/mockStore.jsx b/src/data/mockStore.jsx index a798d16..c6b4929 100644 --- a/src/data/mockStore.jsx +++ b/src/data/mockStore.jsx @@ -2359,6 +2359,26 @@ const MOCK_PROJECTS = [ { stage: 'Contract Signed', date: '2026-01-06', by: 'Justin Johnson', note: 'Contract executed.' }, { stage: 'Work In Progress', date: '2026-01-10', by: 'Justin Johnson', note: 'Site prep complete; ductwork rough-in started. Delayed due to equipment backorder.' }, ], + verifiedScope: { summary: 'Full 5-ton HVAC system replacement including ductwork upsizing, smart thermostat, and electrical hookup', estTotal: 31650, estDays: 35 }, + inspections: [ + { + id: 'insp_003_1', + kind: 'damage', + round: 1, + inspectorName: 'Travis Boone', + inspectorRole: 'Field Agent', + inspectionDate: '2025-12-22', + result: 'pass', + feedbackNote: 'Confirmed full HVAC unit failure — compressor seized and ducts undersized; replacement scope validated.', + issues: [], + }, + ], + estimateVersions: [ + { version: 1, date: '2025-12-28', total: 28000, note: 'Initial estimate — standard 5-ton unit and basic ductwork', status: 'sent' }, + { version: 2, date: '2026-01-22', total: 29200, note: 'Revised: added return duct upsizing per CO-003-01 for better master bedroom airflow', status: 'revised' }, + { version: 3, date: '2026-02-18', total: 29650, note: 'Revised: Ecobee Premium thermostat upgrade per owner request (CO-003-02 pending)', status: 'revised' }, + { version: 4, date: '2026-02-25', total: 31650, note: 'Final signed scope after adjuster supplement and equipment change order approved', status: 'signed' }, + ], }, // Project 4: Active, on track, under budget @@ -2800,6 +2820,21 @@ const MOCK_PROJECTS = [ { stage: 'Work In Progress', date: '2025-11-22', by: 'Diana Reeves', note: 'Pier installation east and west sides complete; slab lifting done.' }, { stage: 'Work Complete — Awaiting Inspection', date: '2026-02-10', by: 'Diana Reeves', note: 'Final grade and drainage in progress; re-certification pending.' }, ], + inspections: [ + { + id: 'insp_008_1', + kind: 'final', + round: 1, + inspectorName: 'Gerald Whitfield', + inspectorContact: { phone: '(972) 884-3107', email: 'g.whitfield@dfwstructuralinspect.com' }, + inspectionDate: '2026-02-26', + result: 'fail', + feedbackNote: 'Valley flashing detail needs rework before sign-off.', + issues: [ + { id: 'iss_8_1', description: 'Valley flashing not sealed to spec', note: 'Re-seal and re-inspect', photos: [], status: 'open' }, + ], + }, + ], }, // Project 9: Delayed with missed milestone @@ -3027,6 +3062,10 @@ const MOCK_PROJECTS = [ { stage: 'Contract Signed', date: '2025-12-08', by: 'Diana Reeves', note: 'Contract executed; scaffolding crew mobilized.' }, { stage: 'Work In Progress', date: '2025-12-12', by: 'Diana Reeves', note: 'Scaffolding up; masonry Phase 1 & 2 complete. Disputed scope on CO #2/#3 — project effectively paused at 62%.' }, ], + estimateVersions: [ + { version: 1, date: '2025-11-28', total: 82000, note: 'Original signed scope — masonry repair, waterproofing, surface cleaning, and final paint', status: 'signed' }, + { version: 2, date: '2026-01-30', total: 95000, note: 'Revised: added CO #2 (additional masonry Phase 2) and CO #3 (structural reinforcement) — customer disputes these were not in original approved bid', status: 'revised' }, + ], }, // Project 12: On Hold @@ -3513,6 +3552,27 @@ const MOCK_PROJECTS = [ { stage: 'Scope Approved', date: '2026-03-22', by: 'Justin Johnson', note: 'Supplemental scope finalized.' }, { stage: 'Contract Signed', date: '2026-03-28', by: 'Justin Johnson', note: 'Contract executed; 30% deposit collected. Materials ordered.' }, ], + reportedScope: { summary: 'Small roof leak near chimney', estTotal: 200, estDays: 1 }, + verifiedScope: { summary: 'Widespread hail bruising across north + west slopes; decking damage', estTotal: 15400, estDays: 5 }, + scopeVariance: true, + inspections: [ + { + id: 'insp_017_1', + kind: 'damage', + round: 1, + inspectorName: 'Cody Tatum', + inspectorRole: 'Field Agent', + inspectionDate: '2026-02-22', + result: 'pass', + feedbackNote: 'Verified major hail damage far exceeding the reported leak; photos on file.', + issues: [], + }, + ], + estimateVersions: [ + { version: 1, date: '2026-02-25', total: 200, note: 'Initial — homeowner-reported leak', status: 'sent' }, + { version: 2, date: '2026-03-10', total: 15400, note: 'Revised after damage verification (insurance supplement filed)', status: 'revised' }, + { version: 3, date: '2026-03-28', total: 15400, note: 'Approved & signed after adjuster supplement', status: 'signed' }, + ], }, // PRJ-2026-018 — Marvin Delgado (kl_028, kc_progress) @@ -4306,6 +4366,23 @@ const MOCK_PROJECTS = [ { stage: 'Project Completed', date: '2026-02-20', by: 'Diana Reeves', note: 'Outstanding quality. Referral bonus owed.' }, { stage: 'Final Payment Received — Closed', date: '2026-02-20', by: 'Diana Reeves', note: 'Upfront payment confirmed; project closed.' }, ], + inspections: [ + { + id: 'insp_026_1', + kind: 'final', + round: 1, + inspectorName: 'Brenda Kowalski', + inspectorContact: { phone: '(214) 763-5590', email: 'b.kowalski@planotexasinspections.com' }, + inspectionDate: '2026-02-20', + result: 'pass', + feedbackNote: 'Passed — no punch items.', + issues: [], + }, + ], + estimateVersions: [ + { version: 1, date: '2026-01-26', total: 22100, note: 'Initial estimate — full GAF roof replacement, cash client; accepted same day', status: 'sent' }, + { version: 2, date: '2026-01-30', total: 22100, note: 'Signed at contract execution; no revisions required', status: 'signed' }, + ], }, // PRJ-2026-027 — Daphne Garrett (kl_037, kc_complete) @@ -5909,6 +5986,7 @@ const KANBAN_LEADS_INITIAL = [ assignedAgentId: 'e4', assignedAgentName: 'Shelby Greer', columnId: 'kc_signed', bucketId: null, value: 19600, stormSource: true, projectId: 'PRJ-2026-017', notes: 'Signed after lengthy negotiation on supplemental items.', + reportedScope: { summary: 'Small roof leak near chimney', estTotal: 200, estDays: 1 }, createdDate: '2026-02-15', activity: [ { from: null, to: 'New Lead', by: 'Shelby Greer', date: '2026-02-15', note: 'Canvassing after January wind event.' },