sonar / sonar (push) Skipped
sonar / sonar (pull_request) Failing after 40s
Enable local workshop readiness with executable SQLite migrations, OpenTelemetry hello signals, and a provisioned Grafana demo dashboard over Tempo/Loki/Prometheus. Co-authored-by: Cursor <cursoragent@cursor.com>
28 lines
917 B
SQL
28 lines
917 B
SQL
-- 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);
|