Survey Lifecycle ================ State Machine ------------- .. mermaid:: stateDiagram-v2 [*] --> scheduled scheduled --> confirmed : Customer confirms confirmed --> in_progress : Team on site in_progress --> completed : Survey done completed --> report_submitted : Report uploaded report_submitted --> reviewed_approved : Central Ops approves report_submitted --> reviewed_rejected : Central Ops rejects reviewed_rejected --> scheduled : New survey scheduled scheduled --> rescheduled : Date changed confirmed --> rescheduled : Emergency rescheduled --> scheduled : New date set scheduled --> cancelled confirmed --> cancelled reviewed_approved --> [*] cancelled --> [*] Survey Day Sequence ------------------- .. mermaid:: sequenceDiagram participant CentralOps as Central Ops participant FieldTeam as Field Team participant Customer CentralOps->>Customer: Confirm Survey Time CentralOps->>FieldTeam: Assign Survey + Share Survey ID FieldTeam->>Customer: Survey Day Confirmation Call alt Team Available FieldTeam->>Customer: Conduct Survey FieldTeam->>CentralOps: Submit Survey Report + Media CentralOps->>CentralOps: Review Report alt Site Ready CentralOps->>Customer: Confirm Installation Readiness else Site Not Ready CentralOps->>Customer: Inform Load / Earthing / Civil Work Customer->>CentralOps: Confirm Site Ready end else Team Unavailable (Emergency) FieldTeam--xCentralOps: Unable to Reach Site CentralOps->>Customer: Inform Delay + Check Availability CentralOps->>CentralOps: Search Backup Team alt Backup Available CentralOps->>FieldTeam: Emergency Assignment FieldTeam->>Customer: Reconfirm & Execute Survey FieldTeam->>CentralOps: Submit Survey Report else No Backup CentralOps->>Customer: Priority Reschedule end end