Technical Documentation
Database Schema & ERD
Quick search…⌘K
The Auto Glass platform uses PostgreSQL 16 as its primary relational database. The schema is normalized to 3NF with strategic JSONB columns for flexible, schemaless data (ADAS feature sets, photo arrays). All tables use UUID v7 primary keys for sortability and distribution safety.
Database Conventions: All monetary values stored as integer cents (no floating-point money). All timestamps are
timestamptz in UTC. Soft deletes via deleted_at column — no hard deletes on core entities.Entity Relationship Diagram (ERD)
Loading diagram…
Core Entity Descriptions
| Entity | Description | Key Fields |
|---|---|---|
customers | End-consumers, fleet managers, insurance adjusters using the platform | email (unique), phone |
vehicles | Registered vehicles linked to customers; ADAS feature flags stored as JSONB | vin (unique per customer), nags_glass_id |
quotes | Itemised pricing breakdown for a service request; expires after 7 days | total_cents, adas_required, status |
bookings | Confirmed appointment derived from an accepted quote | confirmation_code, scheduled_at, status |
technicians | Field service technicians with AGSC certification and ADAS training flags | certification_number, adas_trained |
work_orders | Operational execution record attached to a booking; links to photos and signature | status, photo_urls (JSONB), signature_data_url |
parts | Glass catalog with NAGS part numbers, cost/retail pricing, and van stock levels | nags_part_number, qty_on_hand, reorder_point |
invoices | Billing document linking to work order with PDF URL | total_cents, status, pdf_url |
insurance_claims | EDI claim submission tracking with insurer response and rejection codes | claimed_amount_cents, status, rejection_code |
adas_calibrations | Camera/sensor calibration session record with pass/fail and certificate PDF | calibration_type, passed, certificate_url |
Indexes & Query Optimisation
-- Technician availability lookup (Dispatch Engine)
CREATE INDEX idx_bookings_technician_scheduled
ON bookings(technician_id, scheduled_at)
WHERE status IN ('confirmed', 'en_route', 'in_progress');
-- Customer booking history (Customer Portal)
CREATE INDEX idx_bookings_customer_created
ON bookings(customer_id, created_at DESC);
-- Part reorder monitoring
CREATE INDEX idx_parts_low_stock
ON parts(qty_on_hand)
WHERE qty_on_hand <= reorder_point;
-- Claims status reporting
CREATE INDEX idx_claims_status_submitted
ON insurance_claims(status, submitted_at DESC);
-- ADAS calibration lookups per work order
CREATE UNIQUE INDEX idx_calibration_work_order
ON adas_calibrations(work_order_id);Data Retention Policy
| Entity | Retention Period | Notes |
|---|---|---|
| Customers / Vehicles | Indefinite | Soft-deleted 7 years after last activity per CCPA |
| Quotes | 90 days | Expired quotes archived to cold storage after 90 days |
| Work Orders / Invoices | 7 years | IRS compliance for financial records |
| Insurance Claims | 7 years | CMS and state insurance regulatory requirements |
| ADAS Calibration Certs | 10 years | OEM and liability traceability requirements |
| Photos / Damage Images | 5 years | S3 Intelligent-Tiering; moved to Glacier after 1 year |