123// Exact DDL is mirrored in bench/fixtures/apps/com.lattice.trips/schema.sql.exportconstDDL =
"CREATE TABLE IF NOT EXISTS trips (\n id TEXT PRIMARY KEY, /* UUID */\n title TEXT NOT NULL CHECK (length(trim(title)) > 0),\n destination TEXT NOT NULL CHECK (length(trim(destination)) > 0),\n start_date TEXT NOT NULL, /* inclusive destination-local YYYY-MM-DD */\n end_date TEXT NOT NULL CHECK (end_date >= start_date), /* inclusive destination-local YYYY-MM-DD */\n created_at TEXT NOT NULL /* UTC ISO 8601, e.g. 2026-10-15T12:00:00.000Z */\n);\nCREATE TABLE IF NOT EXISTS itinerary_items (\n id TEXT PRIMARY KEY, /* UUID */\n trip_id TEXT NOT NULL REFERENCES trips(id),\n kind TEXT NOT NULL CHECK (kind IN ('flight','lodging','activity')),\n title TEXT NOT NULL CHECK (length(trim(title)) > 0),\n date TEXT NOT NULL, /* destination-local YYYY-MM-DD within parent trip range */\n time TEXT NOT NULL DEFAULT '', /* HH:MM in destination-local time, empty means unspecified */\n location TEXT NOT NULL DEFAULT '',\n confirmation_code TEXT NOT NULL DEFAULT '',\n created_at TEXT NOT NULL /* UTC ISO 8601 */\n);\nCREATE INDEX IF NOT EXISTS itinerary_by_trip_date ON itinerary_items(trip_id, date, time);\nCREATE TABLE IF NOT EXISTS packing_items (\n id TEXT PRIMARY KEY, /* UUID */\n trip_id TEXT NOT NULL REFERENCES trips(id),\n label TEXT NOT NULL CHECK (length(trim(label)) > 0),\n quantity INTEGER NOT NULL DEFAULT 1 CHECK (quantity BETWEEN 1 AND 999), /* count of pieces */\n checked INTEGER NOT NULL DEFAULT 0 CHECK (checked IN (0,1)), /* 0 unpacked, 1 packed */\n checked_at TEXT, /* UTC ISO 8601 when checked, NULL when unchecked */\n created_at TEXT NOT NULL /* UTC ISO 8601 */\n);\nCREATE TABLE IF NOT EXISTS event_outbox (\n id TEXT PRIMARY KEY, /* stable deduplication key for an outgoing event */\n name TEXT NOT NULL,\n payload TEXT NOT NULL, /* JSON object conforming to the manifest event schema */\n created_at TEXT NOT NULL, /* UTC ISO 8601 */\n delivered_at TEXT /* UTC ISO 8601, NULL until host accepts event */\n);\nCREATE TABLE IF NOT EXISTS listener_receipts (\n event_hash TEXT PRIMARY KEY, /* host event hash, scoped by listener name */\n processed_at TEXT NOT NULL /* UTC ISO 8601 */\n);\n";