20240806182921_test_schema.sql

 1create table providers (
 2    id integer primary key autoincrement,
 3    name text not null
 4);
 5
 6create unique index uix_providers_on_name on providers (name);
 7
 8create table models (
 9    id integer primary key autoincrement,
10    provider_id integer not null references providers (id) on delete cascade,
11    name text not null
12);
13
14create unique index uix_models_on_provider_id_name on models (provider_id, name);
15create index ix_models_on_provider_id on models (provider_id);
16create index ix_models_on_name on models (name);
17
18create table if not exists usages (
19    id integer primary key autoincrement,
20    user_id integer not null,
21    model_id integer not null references models (id) on delete cascade,
22    requests_this_minute integer not null default 0,
23    tokens_this_minute integer not null default 0,
24    requests_this_day integer not null default 0,
25    tokens_this_day integer not null default 0,
26    requests_this_month integer not null default 0,
27    tokens_this_month integer not null default 0
28);
29
30create index ix_usages_on_user_id on usages (user_id);
31create index ix_usages_on_model_id on usages (model_id);
32create unique index uix_usages_on_user_id_model_id on usages (user_id, model_id);