ExtraChat/server/migrations/1_initial_schema.sql

46 lines
1.5 KiB
SQL

create table users
(
lodestone_id unsigned bigint not null primary key,
name text not null,
world text not null,
key_short text not null,
key_hash text not null
);
create table verifications
(
lodestone_id unsigned bigint not null primary key,
challenge text not null,
created_at timestamp not null default current_timestamp
);
create table channels
(
id text not null primary key,
name blob not null
);
create table user_channels
(
lodestone_id unsigned bigint not null references users (lodestone_id) on delete cascade,
channel_id text not null references channels (id) on delete cascade,
rank tinyint not null,
primary key (lodestone_id, channel_id)
);
create index user_channels_lodestone_id_idx on user_channels (lodestone_id);
create index user_channels_channel_id_idx on user_channels (channel_id);
create table channel_invites
(
channel_id text not null references channels (id) on delete cascade,
invited unsigned bigint not null references users (lodestone_id) on delete cascade,
inviter unsigned bigint not null references users (lodestone_id) on delete cascade,
primary key (channel_id, invited)
);
create index channel_invites_channel_id_idx on channel_invites (channel_id);
create index channel_invites_channel_id_invited_idx on channel_invites (channel_id, invited);