Files
api-worker/apps/worker/migrations/0001_init.sql
T

66 lines
1.5 KiB
SQL

CREATE TABLE IF NOT EXISTS channels (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
base_url TEXT NOT NULL,
api_key TEXT NOT NULL,
type INTEGER NOT NULL DEFAULT 1,
group_name TEXT,
priority INTEGER NOT NULL DEFAULT 0,
weight INTEGER NOT NULL DEFAULT 1,
status TEXT NOT NULL DEFAULT 'active',
rate_limit INTEGER DEFAULT 0,
models_json TEXT,
metadata_json TEXT,
test_time INTEGER,
response_time_ms INTEGER,
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS tokens (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
key_hash TEXT NOT NULL,
key_prefix TEXT NOT NULL,
token_plain TEXT,
quota_total INTEGER,
quota_used INTEGER NOT NULL DEFAULT 0,
status TEXT NOT NULL DEFAULT 'active',
allowed_channels TEXT,
created_at TEXT NOT NULL,
updated_at TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS usage_logs (
id TEXT PRIMARY KEY,
token_id TEXT,
channel_id TEXT,
model TEXT,
request_path TEXT,
total_tokens INTEGER,
prompt_tokens INTEGER,
completion_tokens INTEGER,
cost REAL,
latency_ms INTEGER,
first_token_latency_ms INTEGER,
stream INTEGER,
reasoning_effort TEXT,
status TEXT,
created_at TEXT NOT NULL
);
CREATE INDEX IF NOT EXISTS usage_logs_created_at ON usage_logs(created_at);
CREATE TABLE IF NOT EXISTS settings (
key TEXT PRIMARY KEY,
value TEXT NOT NULL,
updated_at TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS admin_sessions (
id TEXT PRIMARY KEY,
token_hash TEXT NOT NULL,
expires_at TEXT NOT NULL,
created_at TEXT NOT NULL
);