Technical Documentation

Database Schema & ERD

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

EntityDescriptionKey Fields
customersEnd-consumers, fleet managers, insurance adjusters using the platformemail (unique), phone
vehiclesRegistered vehicles linked to customers; ADAS feature flags stored as JSONBvin (unique per customer), nags_glass_id
quotesItemised pricing breakdown for a service request; expires after 7 daystotal_cents, adas_required, status
bookingsConfirmed appointment derived from an accepted quoteconfirmation_code, scheduled_at, status
techniciansField service technicians with AGSC certification and ADAS training flagscertification_number, adas_trained
work_ordersOperational execution record attached to a booking; links to photos and signaturestatus, photo_urls (JSONB), signature_data_url
partsGlass catalog with NAGS part numbers, cost/retail pricing, and van stock levelsnags_part_number, qty_on_hand, reorder_point
invoicesBilling document linking to work order with PDF URLtotal_cents, status, pdf_url
insurance_claimsEDI claim submission tracking with insurer response and rejection codesclaimed_amount_cents, status, rejection_code
adas_calibrationsCamera/sensor calibration session record with pass/fail and certificate PDFcalibration_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

EntityRetention PeriodNotes
Customers / VehiclesIndefiniteSoft-deleted 7 years after last activity per CCPA
Quotes90 daysExpired quotes archived to cold storage after 90 days
Work Orders / Invoices7 yearsIRS compliance for financial records
Insurance Claims7 yearsCMS and state insurance regulatory requirements
ADAS Calibration Certs10 yearsOEM and liability traceability requirements
Photos / Damage Images5 yearsS3 Intelligent-Tiering; moved to Glacier after 1 year