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);