-- test/fixtures/test-schema.sql -- -- Minimum subset of the production schema required by live.integration.test.ts. -- Intentionally a simplified subset of the Directus-managed schema — keeps only -- the columns the Processor's live-broadcast queries actually read. -- -- Maintenance note: keep in sync with the real schema when join shapes change. -- The integration test runs the real queries from device-event-map.ts and -- snapshot.ts unmodified, so the column types here must match production. -- events — the container for entries. -- Processor reads events.id (snapshot WHERE e.event_id = $1). CREATE TABLE IF NOT EXISTS events ( id uuid PRIMARY KEY DEFAULT gen_random_uuid() -- Real schema also has: organization_id FK, name, slug, discipline, starts_at, ends_at. ); -- entries — race entries belonging to an event. -- Processor reads entries.id and entries.event_id. CREATE TABLE IF NOT EXISTS entries ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), event_id uuid NOT NULL REFERENCES events (id) ON DELETE CASCADE -- Real schema also has: vehicle_id, class_id, race_number, status, etc. ); -- devices — durable hardware catalog. -- Processor reads devices.id and devices.imei (joined to positions.device_id). -- positions.device_id stores the IMEI text; entry_devices.device_id stores the -- devices.id uuid. This table is the bridge that lets snapshot.ts and -- device-event-map.ts translate between the two without `uuid = text` errors. CREATE TABLE IF NOT EXISTS devices ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), imei text NOT NULL UNIQUE -- Real schema also has: model, serial_number, notes, date_created, date_updated. ); -- entry_devices — maps a device (uuid FK) to an entry. -- Real schema (and this fixture): device_id is uuid FK to devices.id. -- Live-broadcast joins translate to/from positions.device_id (IMEI text) -- via the devices table. CREATE TABLE IF NOT EXISTS entry_devices ( id uuid PRIMARY KEY DEFAULT gen_random_uuid(), entry_id uuid NOT NULL REFERENCES entries (id) ON DELETE CASCADE, device_id uuid NOT NULL REFERENCES devices (id) ON DELETE CASCADE );