-- TicketLab initial schema (lab / walking skeleton) CREATE TABLE IF NOT EXISTS schema_migrations ( id TEXT PRIMARY KEY NOT NULL, applied_at TEXT NOT NULL ); CREATE TABLE IF NOT EXISTS tickets ( id TEXT PRIMARY KEY NOT NULL, description TEXT NOT NULL, status TEXT NOT NULL CHECK (status IN ('PENDING', 'CLASSIFIED', 'FAILED')), category TEXT CHECK ( category IS NULL OR category IN ('INCIDENT', 'ACCESS_REQUEST', 'BILLING', 'FEATURE_REQUEST', 'OTHER') ), confidence REAL CHECK ( confidence IS NULL OR (confidence >= 0 AND confidence <= 1) ), failure_reason TEXT CHECK ( failure_reason IS NULL OR failure_reason IN ('AI_TIMEOUT', 'AI_UNAVAILABLE', 'AI_INVALID_RESPONSE') ), created_at TEXT NOT NULL, updated_at TEXT NOT NULL ); CREATE INDEX IF NOT EXISTS idx_tickets_status ON tickets (status); CREATE INDEX IF NOT EXISTS idx_tickets_created_at ON tickets (created_at);