mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
Introduce aether-data-schema and driver-specific schema generation for Postgres, MySQL, and SQLite. Split data backends, lifecycle, repositories, and gateway runtime integration across database drivers. Verified with cargo fmt --all --check, cargo clippy --workspace --all-targets -- -D warnings, and cargo test --workspace.
176 lines
5.9 KiB
SQL
176 lines
5.9 KiB
SQL
CREATE TABLE IF NOT EXISTS stats_hourly (
|
|
id TEXT PRIMARY KEY,
|
|
hour_utc INTEGER NOT NULL UNIQUE,
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
|
success_requests INTEGER NOT NULL DEFAULT 0,
|
|
error_requests INTEGER NOT NULL DEFAULT 0,
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
|
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
|
actual_total_cost REAL NOT NULL DEFAULT 0,
|
|
avg_response_time_ms REAL NOT NULL DEFAULT 0,
|
|
is_complete INTEGER NOT NULL DEFAULT 0,
|
|
aggregated_at INTEGER,
|
|
created_at INTEGER NOT NULL,
|
|
updated_at INTEGER NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS stats_hourly_user (
|
|
id TEXT PRIMARY KEY,
|
|
hour_utc INTEGER NOT NULL,
|
|
user_id TEXT NOT NULL,
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
|
success_requests INTEGER NOT NULL DEFAULT 0,
|
|
error_requests INTEGER NOT NULL DEFAULT 0,
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
|
created_at INTEGER NOT NULL,
|
|
updated_at INTEGER NOT NULL,
|
|
UNIQUE (hour_utc, user_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS stats_hourly_user_model (
|
|
id TEXT PRIMARY KEY,
|
|
hour_utc INTEGER NOT NULL,
|
|
user_id TEXT NOT NULL,
|
|
model TEXT NOT NULL,
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
|
created_at INTEGER NOT NULL,
|
|
updated_at INTEGER NOT NULL,
|
|
UNIQUE (hour_utc, user_id, model)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS stats_hourly_model (
|
|
id TEXT PRIMARY KEY,
|
|
hour_utc INTEGER NOT NULL,
|
|
model TEXT NOT NULL,
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
|
avg_response_time_ms REAL NOT NULL DEFAULT 0,
|
|
created_at INTEGER NOT NULL,
|
|
updated_at INTEGER NOT NULL,
|
|
UNIQUE (hour_utc, model)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS stats_hourly_provider (
|
|
id TEXT PRIMARY KEY,
|
|
hour_utc INTEGER NOT NULL,
|
|
provider_name TEXT NOT NULL,
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
|
created_at INTEGER NOT NULL,
|
|
updated_at INTEGER NOT NULL,
|
|
UNIQUE (hour_utc, provider_name)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS stats_daily (
|
|
id TEXT PRIMARY KEY,
|
|
"date" INTEGER NOT NULL UNIQUE,
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
|
success_requests INTEGER NOT NULL DEFAULT 0,
|
|
error_requests INTEGER NOT NULL DEFAULT 0,
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
|
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
|
actual_total_cost REAL NOT NULL DEFAULT 0,
|
|
avg_response_time_ms REAL NOT NULL DEFAULT 0,
|
|
fallback_count INTEGER NOT NULL DEFAULT 0,
|
|
unique_models INTEGER NOT NULL DEFAULT 0,
|
|
unique_providers INTEGER NOT NULL DEFAULT 0,
|
|
is_complete INTEGER NOT NULL DEFAULT 0,
|
|
aggregated_at INTEGER,
|
|
created_at INTEGER NOT NULL,
|
|
updated_at INTEGER NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS stats_daily_model (
|
|
id TEXT PRIMARY KEY,
|
|
"date" INTEGER NOT NULL,
|
|
model TEXT NOT NULL,
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
|
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
|
avg_response_time_ms REAL NOT NULL DEFAULT 0,
|
|
created_at INTEGER NOT NULL,
|
|
updated_at INTEGER NOT NULL,
|
|
UNIQUE ("date", model)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS stats_daily_provider (
|
|
id TEXT PRIMARY KEY,
|
|
"date" INTEGER NOT NULL,
|
|
provider_name TEXT NOT NULL,
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
|
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
|
created_at INTEGER NOT NULL,
|
|
updated_at INTEGER NOT NULL,
|
|
UNIQUE ("date", provider_name)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS stats_daily_api_key (
|
|
id TEXT PRIMARY KEY,
|
|
api_key_id TEXT NOT NULL,
|
|
"date" INTEGER NOT NULL,
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
|
success_requests INTEGER NOT NULL DEFAULT 0,
|
|
error_requests INTEGER NOT NULL DEFAULT 0,
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
|
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
|
api_key_name TEXT,
|
|
created_at INTEGER NOT NULL,
|
|
updated_at INTEGER NOT NULL,
|
|
UNIQUE ("date", api_key_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS stats_daily_error (
|
|
id TEXT PRIMARY KEY,
|
|
"date" INTEGER NOT NULL,
|
|
error_category TEXT NOT NULL,
|
|
provider_name TEXT,
|
|
model TEXT,
|
|
count INTEGER NOT NULL DEFAULT 0,
|
|
created_at INTEGER NOT NULL,
|
|
updated_at INTEGER NOT NULL,
|
|
UNIQUE ("date", error_category, provider_name, model)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS stats_user_daily (
|
|
id TEXT PRIMARY KEY,
|
|
user_id TEXT NOT NULL,
|
|
"date" INTEGER NOT NULL,
|
|
total_requests INTEGER NOT NULL DEFAULT 0,
|
|
success_requests INTEGER NOT NULL DEFAULT 0,
|
|
error_requests INTEGER NOT NULL DEFAULT 0,
|
|
input_tokens INTEGER NOT NULL DEFAULT 0,
|
|
output_tokens INTEGER NOT NULL DEFAULT 0,
|
|
cache_creation_tokens INTEGER NOT NULL DEFAULT 0,
|
|
cache_read_tokens INTEGER NOT NULL DEFAULT 0,
|
|
total_cost REAL NOT NULL DEFAULT 0,
|
|
username TEXT,
|
|
created_at INTEGER NOT NULL,
|
|
updated_at INTEGER NOT NULL,
|
|
UNIQUE ("date", user_id)
|
|
);
|