From ebd5b78f41f8cdffe3158ee887e5cf470937f39f Mon Sep 17 00:00:00 2001 From: Satyam Rastogi Date: Fri, 29 May 2026 03:48:24 +0530 Subject: [PATCH] fix(data): remap subcontractor task/notification actor ids to canonical scheme --- src/data/mockStore.jsx | 76 +++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/src/data/mockStore.jsx b/src/data/mockStore.jsx index 9868fbe..f1b63a4 100644 --- a/src/data/mockStore.jsx +++ b/src/data/mockStore.jsx @@ -5181,7 +5181,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ companyName: 'LynkedUp Pro Roofing', subcontractorId: 'sub_002', subcontractorName: 'Maya Patel', - assignedBy: 'owner_001', + assignedBy: 'own_001', assignedByName: 'Justin Johnson', title: 'Replace damaged ridge cap', location: '2612 Dunwick Dr, Plano, TX 75023', @@ -5196,16 +5196,16 @@ const MOCK_SUBCONTRACTOR_TASKS = [ { id: 'sct_001_p4', name: 'Roof_Reference.jpg', url: '/assets/images/properties/Overlapping_Roof_Shingles.jpg', annotation: '' }, ], statusHistory: [ - { id: 'sct_001_h1', status: 'Assigned', actorId: 'owner_001', actorName: 'Justin Johnson', comment: 'Task created and assigned.', at: '2026-05-15T09:12:00Z' }, + { id: 'sct_001_h1', status: 'Assigned', actorId: 'own_001', actorName: 'Justin Johnson', comment: 'Task created and assigned.', at: '2026-05-15T09:12:00Z' }, { id: 'sct_001_h2', status: 'In Progress', actorId: 'sub_002', actorName: 'Maya Patel', comment: 'On site, sourced materials.', at: '2026-05-16T08:30:00Z' }, ], thread: [ - { id: 'sct_001_t1', channel: 'group', senderId: 'owner_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Please source them — match Owens Corning Estate Gray as best you can.', at: '2026-05-15T09:14:00Z' }, + { id: 'sct_001_t1', channel: 'group', senderId: 'own_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Please source them — match Owens Corning Estate Gray as best you can.', at: '2026-05-15T09:14:00Z' }, { id: 'sct_001_t2', channel: 'group', senderId: 'sub_002', senderName: 'Maya Patel', senderRole: 'Subcontractor', body: 'Got it. I’ll be there on May 20. Do you have shingles in storage or should I source them?', at: '2026-05-15T10:30:00Z', mine: true }, - { id: 'sct_001_t3', channel: 'group', senderId: 'owner_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Source them and put it on the task expenses. Homeowner is OK to reimburse.', at: '2026-05-15T11:00:00Z' }, + { id: 'sct_001_t3', channel: 'group', senderId: 'own_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Source them and put it on the task expenses. Homeowner is OK to reimburse.', at: '2026-05-15T11:00:00Z' }, { id: 'sct_001_t4', channel: 'group', senderId: 'sub_002', senderName: 'Maya Patel', senderRole: 'Subcontractor', body: 'Sounds good — picking up at Home Depot tomorrow morning.', at: '2026-05-15T11:08:00Z', mine: true }, - { id: 'sct_001_t5', channel: 'direct', senderId: 'owner_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Heads up team: homeowner is sensitive about noise — keep work to daylight hours only. No early-morning starts.', at: '2026-05-15T11:05:00Z' }, - { id: 'sct_001_t6', channel: 'group', senderId: 'ADM01', senderName: 'Wade Hollis', senderRole: 'Admin', body: 'Permits are not required for this scope. Skip the city portal step.', at: '2026-05-15T12:10:00Z' }, + { id: 'sct_001_t5', channel: 'direct', senderId: 'own_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Heads up team: homeowner is sensitive about noise — keep work to daylight hours only. No early-morning starts.', at: '2026-05-15T11:05:00Z' }, + { id: 'sct_001_t6', channel: 'group', senderId: 'a1', senderName: 'Wade Hollis', senderRole: 'Admin', body: 'Permits are not required for this scope. Skip the city portal step.', at: '2026-05-15T12:10:00Z' }, { id: 'sct_001_t7', channel: 'direct', senderId: 'sub_002', senderName: 'Maya Patel', senderRole: 'Subcontractor', body: 'Noted. Will text homeowner when crew is 30 min out.', at: '2026-05-15T12:25:00Z', mine: true }, ], expenses: [ @@ -5224,7 +5224,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ id: 'sct_001_a1', type: 'status_change', status: 'Assigned', note: 'Task created and assigned. Materials list shared with crew.', photos: [], - actorId: 'owner_001', actorName: 'Justin Johnson', actorRole: 'Owner', + actorId: 'own_001', actorName: 'Justin Johnson', actorRole: 'Owner', at: '2026-05-15T09:12:00Z', }, { @@ -5272,7 +5272,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ companyName: 'LynkedUp Pro Roofing', subcontractorId: 'sub_001', subcontractorName: 'Carlos Mendoza', - assignedBy: 'owner_001', + assignedBy: 'own_001', assignedByName: 'Justin Johnson', title: 'Replace breaker panel', location: '6613 Phoenix Pl, Plano, TX 75023', @@ -5285,13 +5285,13 @@ const MOCK_SUBCONTRACTOR_TASKS = [ { id: 'sct_002_p2', name: 'Service_Mast.jpg', url: '/assets/images/properties/Modern_White_Suburban_Home.jpg', annotation: 'Service mast — verify clearance' }, ], statusHistory: [ - { id: 'sct_002_h1', status: 'Assigned', actorId: 'owner_001', actorName: 'Justin Johnson', comment: 'Task created and assigned.', at: '2026-05-10T15:40:00Z' }, + { id: 'sct_002_h1', status: 'Assigned', actorId: 'own_001', actorName: 'Justin Johnson', comment: 'Task created and assigned.', at: '2026-05-10T15:40:00Z' }, { id: 'sct_002_h2', status: 'In Progress', actorId: 'sub_001', actorName: 'Carlos Mendoza', comment: 'On site, started disconnect.', at: '2026-05-12T08:20:00Z' }, ], thread: [ { id: 'sct_002_t1', channel: 'group', senderId: 'sub_001', senderName: 'Carlos Mendoza', senderRole: 'Subcontractor', body: 'Oncor disconnect is confirmed for May 12, 8 AM.', at: '2026-05-11T16:00:00Z', mine: true }, - { id: 'sct_002_t2', channel: 'group', senderId: 'owner_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Perfect. Homeowner will be on site.', at: '2026-05-11T16:30:00Z' }, - { id: 'sct_002_t3', channel: 'group', senderId: 'ADM01', senderName: 'Wade Hollis', senderRole: 'Admin', body: 'Inspection slot booked with the city for May 15.', at: '2026-05-12T09:30:00Z' }, + { id: 'sct_002_t2', channel: 'group', senderId: 'own_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Perfect. Homeowner will be on site.', at: '2026-05-11T16:30:00Z' }, + { id: 'sct_002_t3', channel: 'group', senderId: 'a1', senderName: 'Wade Hollis', senderRole: 'Admin', body: 'Inspection slot booked with the city for May 15.', at: '2026-05-12T09:30:00Z' }, ], expenses: [ { id: 'sct_002_e1', description: '200A panel — Square D', category: 'Materials', amount: 312.0, notes: '', receiptUrl: '', createdAt: '2026-05-11T09:00:00Z' }, @@ -5306,7 +5306,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ id: 'sct_002_a1', type: 'status_change', status: 'Assigned', note: 'Task created and assigned. Permit pulled, materials staged.', photos: [], - actorId: 'owner_001', actorName: 'Justin Johnson', actorRole: 'Owner', + actorId: 'own_001', actorName: 'Justin Johnson', actorRole: 'Owner', at: '2026-05-10T15:40:00Z', }, { @@ -5364,7 +5364,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ companyName: 'LynkedUp Pro Roofing', subcontractorId: 'sub_003', subcontractorName: 'Dwayne Boudreaux', - assignedBy: 'ADM01', + assignedBy: 'a1', assignedByName: 'Wade Hollis', title: 'Touch-up exterior paint', location: '3913 Arizona Pl, Plano, TX 75023', @@ -5376,7 +5376,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ { id: 'sct_003_p1', name: 'Before.jpg', url: '/assets/images/properties/Brick_Front_Porch_Home.jpg', annotation: 'Before' }, ], statusHistory: [ - { id: 'sct_003_h1', status: 'Assigned', actorId: 'ADM01', actorName: 'Wade Hollis', comment: 'Task created.', at: '2026-05-05T11:00:00Z' }, + { id: 'sct_003_h1', status: 'Assigned', actorId: 'a1', actorName: 'Wade Hollis', comment: 'Task created.', at: '2026-05-05T11:00:00Z' }, { id: 'sct_003_h2', status: 'In Progress', actorId: 'sub_003', actorName: 'Dwayne Boudreaux', comment: 'Started prep work.', at: '2026-05-13T08:00:00Z' }, { id: 'sct_003_h3', status: 'Completed', actorId: 'sub_003', actorName: 'Dwayne Boudreaux', comment: 'Walked through with homeowner.', at: '2026-05-14T17:30:00Z' }, ], @@ -5406,7 +5406,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ companyName: 'LynkedUp Pro Roofing', subcontractorId: 'sub_002', subcontractorName: 'Maya Patel', - assignedBy: 'owner_001', + assignedBy: 'own_001', assignedByName: 'Justin Johnson', title: 'Emergency tarp — storm damage', location: '4221 Magnolia Ln, Plano, TX 75023', @@ -5419,12 +5419,12 @@ const MOCK_SUBCONTRACTOR_TASKS = [ { id: 'sct_004_p2', name: 'Roof_Texture.jpg', url: '/assets/images/properties/Residential_Roof_Texture.jpg', annotation: '' }, ], statusHistory: [ - { id: 'sct_004_h1', status: 'Assigned', actorId: 'owner_001', actorName: 'Justin Johnson', comment: 'Storm-response priority. Please confirm ETA.', at: '2026-05-18T22:40:00Z' }, + { id: 'sct_004_h1', status: 'Assigned', actorId: 'own_001', actorName: 'Justin Johnson', comment: 'Storm-response priority. Please confirm ETA.', at: '2026-05-18T22:40:00Z' }, ], thread: [ - { id: 'sct_004_t1', channel: 'group', senderId: 'owner_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Can you make it first thing tomorrow morning?', at: '2026-05-18T22:42:00Z' }, + { id: 'sct_004_t1', channel: 'group', senderId: 'own_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Can you make it first thing tomorrow morning?', at: '2026-05-18T22:42:00Z' }, { id: 'sct_004_t2', channel: 'group', senderId: 'sub_002', senderName: 'Maya Patel', senderRole: 'Subcontractor', body: 'Yes — on site by 7:30 AM. Bringing tarps and battens.', at: '2026-05-18T23:05:00Z', mine: true }, - { id: 'sct_004_t3', channel: 'direct', senderId: 'owner_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Customer is filing an insurance claim — make sure to document everything with photos.', at: '2026-05-18T23:10:00Z' }, + { id: 'sct_004_t3', channel: 'direct', senderId: 'own_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Customer is filing an insurance claim — make sure to document everything with photos.', at: '2026-05-18T23:10:00Z' }, ], expenses: [], fees: [], @@ -5444,7 +5444,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ companyName: 'LynkedUp Pro Roofing', subcontractorId: 'sub_002', subcontractorName: 'Maya Patel', - assignedBy: 'ADM01', + assignedBy: 'a1', assignedByName: 'Wade Hollis', title: 'Inspect attic ventilation', location: '5510 Custer Rd, Plano, TX 75023', @@ -5456,13 +5456,13 @@ const MOCK_SUBCONTRACTOR_TASKS = [ { id: 'sct_005_p1', name: 'Attic_View.jpg', url: '/assets/images/properties/Roof_Inspection_Angle.jpg', annotation: 'Access from south gable' }, ], statusHistory: [ - { id: 'sct_005_h1', status: 'Assigned', actorId: 'ADM01', actorName: 'Wade Hollis', comment: 'Task created.', at: '2026-05-12T10:00:00Z' }, + { id: 'sct_005_h1', status: 'Assigned', actorId: 'a1', actorName: 'Wade Hollis', comment: 'Task created.', at: '2026-05-12T10:00:00Z' }, { id: 'sct_005_h2', status: 'In Progress', actorId: 'sub_002', actorName: 'Maya Patel', comment: 'Initial pass done; baffles look blocked.', at: '2026-05-14T11:00:00Z' }, { id: 'sct_005_h3', status: 'On Hold', actorId: 'sub_002', actorName: 'Maya Patel', comment: 'Waiting on homeowner to clear stored boxes from access path.', at: '2026-05-15T16:00:00Z' }, ], thread: [ { id: 'sct_005_t1', channel: 'group', senderId: 'sub_002', senderName: 'Maya Patel', senderRole: 'Subcontractor', body: 'Access is blocked — homeowner needs to move some storage before I can complete the inspection.', at: '2026-05-15T15:55:00Z', mine: true }, - { id: 'sct_005_t2', channel: 'direct', senderId: 'ADM01', senderName: 'Wade Hollis', senderRole: 'Admin', body: 'I will reach out to the homeowner and reschedule.', at: '2026-05-15T16:20:00Z' }, + { id: 'sct_005_t2', channel: 'direct', senderId: 'a1', senderName: 'Wade Hollis', senderRole: 'Admin', body: 'I will reach out to the homeowner and reschedule.', at: '2026-05-15T16:20:00Z' }, ], expenses: [ { id: 'sct_005_e1', description: 'Infrared thermometer (rental)', category: 'Equipment Rental', amount: 35.0, notes: '', receiptUrl: '', createdAt: '2026-05-14T10:30:00Z' }, @@ -5475,7 +5475,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ id: 'sct_005_a1', type: 'status_change', status: 'Assigned', note: 'Task created. Customer reports unusually high attic temps.', photos: [], - actorId: 'ADM01', actorName: 'Wade Hollis', actorRole: 'Admin', + actorId: 'a1', actorName: 'Wade Hollis', actorRole: 'Admin', at: '2026-05-12T10:00:00Z', }, { @@ -5513,7 +5513,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ companyName: 'LynkedUp Pro Roofing', subcontractorId: 'sub_002', subcontractorName: 'Maya Patel', - assignedBy: 'owner_001', + assignedBy: 'own_001', assignedByName: 'Justin Johnson', title: 'Replace gutter on south elevation', location: '8917 Elmwood Dr, Plano, TX 75025', @@ -5523,7 +5523,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ status: 'Assigned', photos: [], statusHistory: [ - { id: 'sct_006_h1', status: 'Assigned', actorId: 'owner_001', actorName: 'Justin Johnson', comment: 'Task created and assigned.', at: '2026-05-17T14:00:00Z' }, + { id: 'sct_006_h1', status: 'Assigned', actorId: 'own_001', actorName: 'Justin Johnson', comment: 'Task created and assigned.', at: '2026-05-17T14:00:00Z' }, ], thread: [], expenses: [], @@ -5544,7 +5544,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ companyName: 'LynkedUp Pro Roofing', subcontractorId: 'sub_002', subcontractorName: 'Maya Patel', - assignedBy: 'ADM01', + assignedBy: 'a1', assignedByName: 'Wade Hollis', title: 'Roof deck repair — north slope', location: '1408 Cedar Ridge, Allen, TX 75002', @@ -5556,7 +5556,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ { id: 'sct_007_p1', name: 'Deck_Repair.jpg', url: '/assets/images/properties/Cracked_Asphalt_Shingles.jpg', annotation: 'Soft section, top right' }, ], statusHistory: [ - { id: 'sct_007_h1', status: 'Assigned', actorId: 'ADM01', actorName: 'Wade Hollis', comment: 'Task created.', at: '2026-05-01T09:00:00Z' }, + { id: 'sct_007_h1', status: 'Assigned', actorId: 'a1', actorName: 'Wade Hollis', comment: 'Task created.', at: '2026-05-01T09:00:00Z' }, { id: 'sct_007_h2', status: 'In Progress', actorId: 'sub_002', actorName: 'Maya Patel', comment: 'Tear-off underway.', at: '2026-05-05T07:30:00Z' }, { id: 'sct_007_h3', status: 'Completed', actorId: 'sub_002', actorName: 'Maya Patel', comment: 'Closed out, photos in.', at: '2026-05-07T16:45:00Z' }, ], @@ -5588,7 +5588,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ companyName: 'LynkedUp Pro Roofing', subcontractorId: 'sub_001', subcontractorName: 'Carlos Mendoza', - assignedBy: 'ADM01', + assignedBy: 'a1', assignedByName: 'Wade Hollis', title: 'Install GFCI outlets — kitchen + bath', location: '224 Greenfield Way, Frisco, TX 75033', @@ -5603,17 +5603,17 @@ const MOCK_SUBCONTRACTOR_TASKS = [ { id: 'sct_008_p4', name: 'Powder_Room.jpg', url: '/assets/images/properties/Luxury_Driveway_Residence.jpg', annotation: 'Powder room — confirm wire gauge' }, ], statusHistory: [ - { id: 'sct_008_h1', status: 'Assigned', actorId: 'ADM01', actorName: 'Wade Hollis', comment: 'Task created and assigned.', at: '2026-05-16T13:00:00Z' }, + { id: 'sct_008_h1', status: 'Assigned', actorId: 'a1', actorName: 'Wade Hollis', comment: 'Task created and assigned.', at: '2026-05-16T13:00:00Z' }, { id: 'sct_008_h2', status: 'In Progress', actorId: 'sub_001', actorName: 'Carlos Mendoza', comment: 'On site, kitchen done; bath next.', at: '2026-05-19T10:15:00Z' }, ], thread: [ - { id: 'sct_008_t1', channel: 'group', senderId: 'ADM01', senderName: 'Wade Hollis', senderRole: 'Admin', body: 'Insurance is reimbursing the code upgrade — keep receipts for the GFCI devices.', at: '2026-05-16T13:05:00Z' }, + { id: 'sct_008_t1', channel: 'group', senderId: 'a1', senderName: 'Wade Hollis', senderRole: 'Admin', body: 'Insurance is reimbursing the code upgrade — keep receipts for the GFCI devices.', at: '2026-05-16T13:05:00Z' }, { id: 'sct_008_t2', channel: 'group', senderId: 'sub_001', senderName: 'Carlos Mendoza', senderRole: 'Subcontractor', body: 'Confirmed — Leviton 20A devices, will keep receipts. Targeting May 19 for the visit.', at: '2026-05-16T14:20:00Z', mine: true }, - { id: 'sct_008_t3', channel: 'group', senderId: 'owner_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Homeowner has 2 small kids — please bring outlet covers as a courtesy.', at: '2026-05-17T09:00:00Z' }, + { id: 'sct_008_t3', channel: 'group', senderId: 'own_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Homeowner has 2 small kids — please bring outlet covers as a courtesy.', at: '2026-05-17T09:00:00Z' }, { id: 'sct_008_t4', channel: 'group', senderId: 'sub_001', senderName: 'Carlos Mendoza', senderRole: 'Subcontractor', body: 'Will do. Already in my truck.', at: '2026-05-17T09:05:00Z', mine: true }, { id: 'sct_008_t5', channel: 'group', senderId: 'sub_001', senderName: 'Carlos Mendoza', senderRole: 'Subcontractor', body: 'Kitchen done. Both counter outlets and the island are on GFCI now. Starting bath after lunch.', at: '2026-05-19T12:30:00Z', mine: true }, - { id: 'sct_008_t6', channel: 'direct', senderId: 'ADM01', senderName: 'Wade Hollis', senderRole: 'Admin', body: 'No permit needed for like-for-like swap. Skip the city portal.', at: '2026-05-16T13:10:00Z' }, - { id: 'sct_008_t7', channel: 'group', senderId: 'owner_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Carlos — if you find any aluminum branch wiring, stop and flag it. We will scope as a change order.', at: '2026-05-17T10:00:00Z' }, + { id: 'sct_008_t6', channel: 'direct', senderId: 'a1', senderName: 'Wade Hollis', senderRole: 'Admin', body: 'No permit needed for like-for-like swap. Skip the city portal.', at: '2026-05-16T13:10:00Z' }, + { id: 'sct_008_t7', channel: 'group', senderId: 'own_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Carlos — if you find any aluminum branch wiring, stop and flag it. We will scope as a change order.', at: '2026-05-17T10:00:00Z' }, { id: 'sct_008_t8', channel: 'direct', senderId: 'sub_001', senderName: 'Carlos Mendoza', senderRole: 'Subcontractor', body: 'All copper, no aluminum. Proceeding as scoped.', at: '2026-05-19T10:30:00Z', mine: true }, ], expenses: [ @@ -5632,7 +5632,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ id: 'sct_008_a1', type: 'status_change', status: 'Assigned', note: 'Task created and assigned to Carlos. Insurance covering code upgrade.', photos: [], - actorId: 'ADM01', actorName: 'Wade Hollis', actorRole: 'Admin', + actorId: 'a1', actorName: 'Wade Hollis', actorRole: 'Admin', at: '2026-05-16T13:00:00Z', }, { @@ -5670,7 +5670,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ companyName: 'LynkedUp Pro Roofing', subcontractorId: 'sub_001', subcontractorName: 'Carlos Mendoza', - assignedBy: 'owner_001', + assignedBy: 'own_001', assignedByName: 'Justin Johnson', title: 'Install EV charger circuit — garage', location: '3917 Arizona Pl, Plano, TX 75023', @@ -5683,10 +5683,10 @@ const MOCK_SUBCONTRACTOR_TASKS = [ { id: 'sct_010_p2', name: 'Panel_Location.jpg', url: '/assets/images/properties/Brick_Front_Porch_Home.jpg', annotation: 'Main panel — check available breaker slots' }, ], statusHistory: [ - { id: 'sct_010_h1', status: 'Assigned', actorId: 'owner_001', actorName: 'Justin Johnson', comment: 'Task created and assigned. Please confirm ETA.', at: '2026-05-20T09:00:00Z' }, + { id: 'sct_010_h1', status: 'Assigned', actorId: 'own_001', actorName: 'Justin Johnson', comment: 'Task created and assigned. Please confirm ETA.', at: '2026-05-20T09:00:00Z' }, ], thread: [ - { id: 'sct_010_t1', channel: 'group', senderId: 'owner_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Carlos — homeowner is hoping to have this in before next weekend. Can you take a look at the panel and confirm slot availability?', at: '2026-05-20T09:02:00Z' }, + { id: 'sct_010_t1', channel: 'group', senderId: 'own_001', senderName: 'Justin Johnson', senderRole: 'Owner', body: 'Carlos — homeowner is hoping to have this in before next weekend. Can you take a look at the panel and confirm slot availability?', at: '2026-05-20T09:02:00Z' }, ], expenses: [], fees: [], @@ -5707,7 +5707,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ companyName: 'LynkedUp Pro Roofing', subcontractorId: 'sub_004', subcontractorName: 'Jennifer Castillo', - assignedBy: 'owner_001', + assignedBy: 'own_001', assignedByName: 'Justin Johnson', title: 'Rough-in plumbing for ADU bathroom', location: '6112 Roundrock Dr, Plano, TX 75025', @@ -5717,7 +5717,7 @@ const MOCK_SUBCONTRACTOR_TASKS = [ status: 'On Hold', photos: [], statusHistory: [ - { id: 'sct_009_h1', status: 'Assigned', actorId: 'owner_001', actorName: 'Justin Johnson', comment: 'Task created.', at: '2026-05-09T10:00:00Z' }, + { id: 'sct_009_h1', status: 'Assigned', actorId: 'own_001', actorName: 'Justin Johnson', comment: 'Task created.', at: '2026-05-09T10:00:00Z' }, { id: 'sct_009_h2', status: 'On Hold', actorId: 'sub_004', actorName: 'Jennifer Castillo', comment: 'Waiting on framing to finish.', at: '2026-05-13T12:00:00Z' }, ], thread: [],