Technical Approach
What Changes
This redesign affects only the navigation and presentation layer. The engine stays the same.
Home screen: Add Vehicle Hub card to existing feature grid
New routes: Smart Dashboard, Vehicle Detail View
New screens: Dashboard, vehicle detail, action panels
New controllers:
VehicleDetailControllerthat composes existing services
What Does NOT Change
Service layer — AuthService, WebSocketService, PhotoUploadService, all untouched
Data models — RecentMoked, MokedSubItem, all untouched
Offline architecture — SQLite queues, deferred uploads, all untouched
Existing routes — Old cards and flows remain functional during phased rollout
API endpoints — No new server endpoints required
Backend: Status Timestamp Tracking
The dashboard needs to show how long each vehicle has been waiting (e.g., "3 days waiting for appraisal"). The current Monday.com board tracks milestone dates but not when a status last changed.
New Monday.com Columns
Three new date columns on the Zohar Leasing board, auto-updated by the existing webhook handler:
Column | Tracks | Updated when |
|---|---|---|
תאריך שינוי סטטוס | Vehicle status change time |
|
תאריך שינוי שמאות | Appraisal status change time |
|
תאריך שינוי חלקים | Parts status change time |
|
Server Change
In cars_data_service.py webhook handler: when a status column change is detected, also update the corresponding date column with datetime.now(). No new endpoints, no new tables — just 3 extra column writes in the existing webhook flow.
Dashboard Calculation
Displayed on vehicle cards as: "3 ימים ממתין לשמאות"
New Components
Component | Purpose |
|---|---|
| Prominent home screen entry point |
| Queue-based vehicle list with role filtering |
| Collapsible queue section with count badge |
| Tabbed vehicle view |
| Composes existing service calls |
| Expandable moked summary with inline actions |
| Contextual action buttons based on status |
| Reusable slide-in panel container |
| Photos + notes action panel |
| Review + confirm action panel |
| Camera + upload action panel |
Controller Pattern
The VehicleDetailController does not duplicate existing business logic. It composes existing services:
Existing workflow controllers (e.g., CarPickupFormFlowController) are not reused inside the vehicle view. New lightweight action handlers are created instead, delegating to the same underlying services.