sendou.ink/postgraphile/migrations/0001_initial.sql
2021-11-06 15:52:40 +02:00

54 lines
2.4 KiB
PL/PgSQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- dev only
drop schema if exists sendou_ink cascade;
drop schema if exists sendou_ink_private cascade;
create schema sendou_ink;
create schema sendou_ink_private;
create function sendou_ink_private.set_updated_at() returns trigger as $$
begin
new.updated_at := current_timestamp;
return new;
end;
$$ language plpgsql;
create table sendou_ink.account (
id serial primary key,
discord_username text not null,
discord_discriminator text not null,
discord_avatar text,
twitch text,
twitter text,
youtube_id text,
youtube_name text,
created_at timestamp default now(),
updated_at timestamp default now()
);
comment on table sendou_ink.account is 'User containing all information automatically fetched on log in.';
comment on column sendou_ink.account.id is 'The primary unique identifier for the user.';
comment on column sendou_ink.account.discord_username is 'Users username on Discord.';
comment on column sendou_ink.account.discord_discriminator is 'Users discriminator on Discord. (e.g. "0043")';
comment on column sendou_ink.account.discord_avatar is 'Users Discord avatar hash.';
comment on column sendou_ink.account.twitch is 'Users username on Twitch.';
comment on column sendou_ink.account.twitter is 'Users username on Twitter.';
comment on column sendou_ink.account.youtube_id is 'Users id on YouTube.';
comment on column sendou_ink.account.youtube_name is 'Users name on YouTube (YouTube partners only).';
comment on column sendou_ink.account.created_at is 'The time this user was created.';
create function sendou_ink.account_discord_full_username(account sendou_ink.account) returns text as $$
select account.discord_username || '#' || account.discord_discriminator
$$ language sql stable;
comment on function sendou_ink.account_discord_full_username(sendou_ink.account) is 'A users full username on Discord consisting of username and discriminator joined together with #.';
create trigger account_updated_at before update
on sendou_ink.account
for each row
execute procedure sendou_ink_private.set_updated_at();
-- seed for dev
insert into sendou_ink.account (discord_username, discord_discriminator, discord_avatar, twitch, twitter, youtube_id, youtube_name)
values ('Sendou', '0043', 'fcfd65a3bea598905abb9ca25296816b', 'Sendou', 'Sendouc', 'UCWbJLXByvsfQvTcR4HLPs5Q', 'Sendou')