-- Usage tracking tables migrated from the Node.js backend. CREATE TABLE IF NOT EXISTS usage_logs ( id BIGSERIAL PRIMARY KEY, downstream_key_id BIGINT, model TEXT, prompt_tokens BIGINT DEFAULT 0, completion_tokens BIGINT DEFAULT 0, total_tokens BIGINT DEFAULT 0, cost DOUBLE PRECISION DEFAULT 0.0, created_at TEXT DEFAULT (CURRENT_TIMESTAMP::TEXT), FOREIGN KEY (downstream_key_id) REFERENCES downstream_api_keys(id) ON DELETE SET NULL ); CREATE INDEX IF NOT EXISTS usage_logs_downstream_key_created_idx ON usage_logs (downstream_key_id, created_at); CREATE INDEX IF NOT EXISTS usage_logs_created_idx ON usage_logs (created_at); CREATE TABLE IF NOT EXISTS usage_daily_snapshots ( id BIGSERIAL PRIMARY KEY, local_day TEXT NOT NULL, downstream_key_id BIGINT, request_count BIGINT NOT NULL DEFAULT 0, prompt_tokens BIGINT NOT NULL DEFAULT 0, completion_tokens BIGINT NOT NULL DEFAULT 0, total_tokens BIGINT NOT NULL DEFAULT 0, total_cost DOUBLE PRECISION NOT NULL DEFAULT 0.0, created_at TEXT DEFAULT (CURRENT_TIMESTAMP::TEXT), updated_at TEXT DEFAULT (CURRENT_TIMESTAMP::TEXT), UNIQUE(), FOREIGN KEY (downstream_key_id) REFERENCES downstream_api_keys(id) ON DELETE SET NULL ); CREATE INDEX IF NOT EXISTS usage_daily_snapshots_day_idx ON usage_daily_snapshots (local_day);