02 — System Diagram

🔍 Open the Interactive Diagram Viewer — pan, mouse-wheel zoom, fit-to-screen, full-screen, per-area tabs, the full ERD, and a focus mode that draws one model and its neighbours at a chosen depth. CartagePort, CartageCustomer and CartageContractor fan out to many tables, so their links can be hidden to declutter the overview.

Regenerate the viewer after any DSL, menu_config.yaml or diagram_config.yaml change: python scripts/build_diagram_viewer.py coast_09_cartage.

Cartage Jobs

flowchart LR
  CAR0[CartageJob] --> CAR1[CartageJobEquipment]
  CAR0[CartageJob] --> CAR2[CartageDispatch]
  CAR0[CartageJob] --> CAR3[CartageMilestone]
  CAR0[CartageJob] --> CAR4[CartageProofOfDelivery]
  CAR0[CartageJob] --> CAR5[CartageException]

Contractor Rates & Costs

flowchart LR
  CAR6[CartageContractorRate] --> CAR7[CartageContractorCost]

Audit & Network

flowchart LR
  CAR8[CartageAudit]
  CAR9[CartageExternalSnapshot]

Reference Copies

flowchart LR
  CAR12[CartagePort] --> CAR11[CartageDeliveryLocation]
  CAR10[CartageContractor]
  CAR13[CartageCustomer]
flowchart LR
  CAR10[CartageContractor] --> CAR6[CartageContractorRate]
  CAR12[CartagePort] --> CAR6[CartageContractorRate]
  CAR11[CartageDeliveryLocation] --> CAR6[CartageContractorRate]
  CAR13[CartageCustomer] --> CAR0[CartageJob]
  CAR12[CartagePort] --> CAR0[CartageJob]
  CAR11[CartageDeliveryLocation] --> CAR0[CartageJob]
  CAR10[CartageContractor] --> CAR0[CartageJob]
  CAR10[CartageContractor] --> CAR2[CartageDispatch]
  CAR0[CartageJob] --> CAR7[CartageContractorCost]
  CAR0[CartageJob] --> CAR8[CartageAudit]

No shared tables and no foreign keys: sibling applications are linked by canonical_ref strings, cid + ref pairs and messages. The customer price of a cartage job is never held here.

flowchart LR
  subgraph coast_09_cartage
    J[CartageJob]
    M[CartageMilestone]
    P[CartageProofOfDelivery]
    C[CartageContractorCost]
  end
  subgraph coast_04_yard
    GT[GateTransaction]
  end
  subgraph coast_03_tracking
    MV[TrackMovement]
  end
  subgraph coast_05_rating
    CR[CartageRate]
  end
  subgraph coast_10_release
    RA[ReleaseAuthority]
  end
  subgraph coast_07_accounts
    AP[AgencyAppointment]
  end
  subgraph coast_08_portcosts
    PC[Port cost line]
  end
  subgraph coast_16_assurance
    AC[AssuranceCase]
  end
  GT -. "yard.gate_recorded (evidence)" .-> M
  MV -. "tracking.movement_accepted (confirms)" .-> M
  J -. "customer_cartage_rate_canonical_ref" .-> CR
  RA -. "release.authority_changed" .-> J
  AP -. "accounts.appointment_changed" .-> J
  PC -. "portcost.cost_approved (duplicate check)" .-> C
  C -. "cartage.cost_approved" .-> AP
  P -. "cartage.pod_verified" .-> RA
  J -. "cartage.exception_raised" .-> AC