Commit Graph

203 Commits

Author SHA1 Message Date
Satyam Rastogi c27d64d75e fix(data): tune PRJ-004/005 to healthy margins (PRJ-019 stays the sole problem job); compute owner portfolio count 2026-05-29 18:42:03 +05:30
Satyam Rastogi a8ed0c0034 feat(leads): enrich lead data + add clickable lead detail page mirroring the create-lead form 2026-05-29 18:18:58 +05:30
Satyam Rastogi aeabcea850 fix(analytics): recognize revenue/commission on percentage-of-completion basis (fix spurious negative gross profit) 2026-05-29 18:11:38 +05:30
Satyam Rastogi c068106679 feat(projects): claimed-vs-verified scope-variance badge 2026-05-29 17:49:58 +05:30
Satyam Rastogi 6c5d9ea5e8 feat(projects): Estimate Versions tab (history + full document view) 2026-05-29 17:48:23 +05:30
Satyam Rastogi 35ff7a2e05 feat(projects): Inspections tab (damage + final, issues, rework loop, photo upload) 2026-05-29 17:45:35 +05:30
Satyam Rastogi 6d2c06f74b fix(data): remove duplicate completionPercentage keys introduced with lifecycleStage 2026-05-29 17:39:57 +05:30
Satyam Rastogi 5dff6cfaea feat(projects): interactive lifecycle progression control with stage history 2026-05-29 17:30:16 +05:30
Satyam Rastogi ffb2307066 feat(store): add lifecycle/inspection/estimate-version mutators 2026-05-29 17:26:40 +05:30
Satyam Rastogi 63b80a91b5 feat(data): add inspections, estimate versions, and scope variance to demo scenarios 2026-05-29 17:25:18 +05:30
Satyam Rastogi 1a96346200 feat(data): add lifecycleStage + stageHistory to all projects 2026-05-29 17:19:39 +05:30
Satyam Rastogi 293abb6d27 feat(lifecycle): add pure project lifecycle stage model (stages, progress map, helpers) 2026-05-29 17:10:53 +05:30
Satyam Rastogi 8e75aa15c9 fix(data): convert signed lead kl_044 to PRJ-2026-029 (resolves orphan signed-column lead) 2026-05-29 17:01:20 +05:30
Satyam Rastogi dd781f4692 feat(dashboards): wire owner + admin KPIs to computed selectors (pipeline, funnel, win-rate, revenue, commission, storm) 2026-05-29 16:50:19 +05:30
Satyam Rastogi 8f5a32179d feat(analytics): add pure selectors for pipeline, revenue, commission, sub performance, storm 2026-05-29 16:46:57 +05:30
Satyam Rastogi 4857033994 feat(data): de-fake customer phones, tag 10 demo archetypes, add lost lead (#3), make #6 over-budget 2026-05-29 16:43:48 +05:30
Satyam Rastogi 76df03f6fa feat(data): realistic pre-sale lead identities, values, dates, and storm attribution 2026-05-29 16:31:23 +05:30
Satyam Rastogi ec1d9dfb25 feat(routes): unify won leads and projects on a single /projects/:id page
- add role-prefix-free /projects/:id route (OWNER/ADMIN/FIELD_AGENT; ABAC guard lands in Phase 8)
- relax detail lookup so admin/field-agent open any project, owners only their own
- kanban drawer + project list route won leads (with projectId) to /projects/:id; pre-sale leads stay on the lead page
2026-05-29 15:51:09 +05:30
Satyam Rastogi d5ea0935b4 fix(data): correct pendingInvoiceCount and align cost-invoice vendors to breakdown 2026-05-29 15:39:36 +05:30
Satyam Rastogi 2b741dd0b5 fix(data): trade-correct vendors, margins, and timeline details on converted projects 2026-05-29 15:20:01 +05:30
Satyam Rastogi 4b2bb37b3b feat(data): convert won kanban leads (kl_023-038) into unified project records 2026-05-29 14:10:54 +05:30
Satyam Rastogi 058f41c763 refactor(data): migrate project ids to PRJ-2026-### (with inbound FKs) 2026-05-29 13:50:13 +05:30
Satyam Rastogi f794ec28b4 chore(data): purge residual placeholder name in docs; normalize sub_001 trade + owner email 2026-05-29 05:00:22 +05:30
Satyam Rastogi 55ede33c2f chore(login): update employee-id placeholder to LUP scheme; gitignore playwright artifact 2026-05-29 04:47:34 +05:30
Satyam Rastogi a3dfd732e8 feat(login): per-role person picker for quick demo access 2026-05-29 04:45:03 +05:30
Satyam Rastogi 155bf6ce63 feat(data): add kanban lead values, fix Complete-stage data, set stormSource 2026-05-29 04:37:57 +05:30
Satyam Rastogi 2f43205854 fix(data): match subcontractor tasks to real projects; style On Hold status 2026-05-29 04:22:30 +05:30
Satyam Rastogi 2010ca080e fix(data): align sub_002-005 login company/trade/phone with subcontractor records 2026-05-29 04:16:26 +05:30
Satyam Rastogi 2399b40926 feat(data): add login records for sub_002-005 so each subcontractor inbox is reachable 2026-05-29 04:13:52 +05:30
Satyam Rastogi cb6695aa94 fix(data): seed leads list so the Leads page is populated on load 2026-05-29 04:09:11 +05:30
Satyam Rastogi 4ee480ec87 fix(data): reconcile project financials and add missing budget breakdowns 2026-05-29 04:01:27 +05:30
Satyam Rastogi ebd5b78f41 fix(data): remap subcontractor task/notification actor ids to canonical scheme 2026-05-29 03:48:24 +05:30
Satyam Rastogi 8c4e6695be fix(data): remap orgMembers userId to canonical id scheme 2026-05-29 03:44:23 +05:30
Satyam Rastogi 890072a051 feat(data): canonical roster — real Texan names + unified LUP employee ids 2026-05-29 03:41:18 +05:30
Satyam Rastogi 0c40f1c881 feat(data): add resolvePerson selector over a merged people index 2026-05-29 03:31:40 +05:30
Satyam Rastogi a03fb0cf00 chore(data): add DEMO_TODAY anchor and use it for kanban day-counter 2026-05-29 03:24:57 +05:30
Satyam Rastogi c68d11dd98 feat(leaderboard): animate podium numbers (count-up) and staggered bottom-up bar growth
Podium values now count up via AnimatedNumber with per-metric formatting
(currency/percent/deals). Podium bars grow from a fixed baseline at constant
speed so bronze settles first, then silver, then gold last; reserve row height
so the baseline doesn't shift mid-animation. Remove unused formatSales/formatCv.
2026-05-29 01:54:33 +05:30
Satyam Rastogi 97597737df fix(dev): stub /api/* in vite dev to avoid @vercel/kv transform crash; allow owners to create map entries 2026-05-29 01:32:55 +05:30
Satyam Rastogi 73387366fe merge: integrate subcontractor, org-settings & commission features from project-refinement
# Conflicts:
#	src/App.jsx
#	src/components/Layout.jsx
#	src/data/mockStore.jsx
#	src/pages/LeadsListPage.jsx
#	src/pages/owner/OwnerProjectDetail.jsx
#	src/pages/owner/OwnerSnapshot.jsx
2026-05-29 01:11:03 +05:30
Satyam Rastogi 490d16b80a subcontrcator: post a status update section- removed photo required option 2026-05-21 20:49:10 +05:30
Satyam Rastogi e648547f1b change mock data of all projects to show positive net profit 2026-05-21 17:48:55 +05:30
Satyam Rastogi 680b2b4cfe update correct url for admin/settings 2026-05-21 16:52:58 +05:30
Satyam Rastogi 371c52fe9d subcontractor: task thread section having teams and direct chat options now 2026-05-21 15:50:19 +05:30
Satyam Rastogi 3a038ffc6f subcontractor: add progress updates and task activity timeline 2026-05-21 15:30:19 +05:30
Satyam Rastogi ad39848b0f adds subcontractor project history and payments table a amount column 2026-05-20 19:32:55 +05:30
Satyam Rastogi 6838d6c38e adds subcontractor project history and payments 2026-05-20 19:23:53 +05:30
Satyam Rastogi 5dd781ca45 subcontractor payments table added in owners box 2026-05-20 18:45:00 +05:30
Satyam Rastogi 11b15a2e30 updates budget & cost feature of projects: added sub contrcator comm, team cost 2026-05-20 14:34:38 +05:30
Satyam Rastogi 2589975074 adds sections as list tasks,log expenses. fees, notifications for sub contrcator 2026-05-19 18:17:36 +05:30
Satyam-Rastogi bdb7a4e465 fix(storm-intel): show CloudHail icon for ice-pellet/hail forecast codes
Tomorrow.io 7xxx codes are ice pellets, not snow — remapped from Snowflake
to CloudHail. Added hailRisk override so any day flagged as hail risk by
the API always renders the hail icon regardless of weatherCode. Also added
missing 6xxx (freezing rain) codes to the icon table.

Mock Sunday entry corrected to weatherCode 8000 (thunderstorm) — 7102 at
76°F made no meteorological sense.
2026-05-19 02:40:21 +05:30