Problems

This commit is contained in:
2023-12-10 22:54:04 +08:00
parent 16aed743d9
commit caff256949
10 changed files with 134 additions and 49 deletions

View File

@ -2,18 +2,13 @@ create table public.profiles (
id uuid not null references auth.users on delete cascade,
username varchar(64),
nickname varchar(256),
school_id int8,
school int8,
primary key (id)
);
alter table public.profiles enable row level security;
create policy "Public profiles are viewable by everyone." on profiles
for select using (true);
create policy "Users can insert their own profile." on profiles
for insert with check (auth.uid() = id);
create policy "Users can update own profile." on profiles
for update using (auth.uid() = id);
create policy "Public profiles are viewable by everyone." on profiles for
select using (true);
create policy "Users can insert their own profile." on profiles for
insert with check (auth.uid() = id);
create policy "Users can update own profile." on profiles for
update using (auth.uid() = id);

View File

@ -1,19 +1,30 @@
create table
public.problems (
id bigint generated by default as identity,
title text not null,
description text not null,
type character varying not null,
tags character varying[] null,
author uuid null,
is_draft boolean null default true,
is_hidden boolean null default false,
created_at timestamp with time zone null default now(),
constraint problems_pkey primary key (id),
constraint problems_author_fkey foreign key (author) references auth.users (id)
) tablespace pg_default;
create table public.problems (
id bigint generated by default as identity,
title text not null,
description text not null,
type character varying not null,
tags character varying [] null,
author uuid null,
metadata jsonb null,
is_draft boolean null default true,
is_hidden boolean null default false,
created_at timestamp with time zone null default now(),
constraint problems_pkey primary key (id),
constraint problems_author_fkey foreign key (author) references auth.users (id)
) tablespace pg_default;
alter table public.problems enable row level security;
create policy "Public problems are viewable by everyone." on problems
for select using (true);
create policy "Public problems are viewable by everyone." on problems for
select using (true);
create table public.problem_cases (
id bigint generated by default as identity,
spec jsonb not null,
limitations jsonb not null,
answer jsonb not null,
problem int8 not null,
is_hidden bool not null default true,
constraint problem_cases_pkey primary key (id),
constraint problem_cases_author_fkey foreign key (problem) references public.problems (id)
) tablespace pg_default;
alter table public.problem_cases enable row level security;
create policy "Public problem cases are viewable by everyone." on problem_cases for
select using (is_hidden = false);

View File

@ -0,0 +1,14 @@
create table public.challenges (
id bigint generated by default as identity,
answers jsonb not null,
details jsonb not null,
author uuid not null,
problem int8 not null,
status varchar(256) not null,
created_at timestamp with time zone null default now(),
constraint challenges_pkey primary key (id),
constraint challenges_author_fkey foreign key (author) references auth.users (id),
constraint challenges_problem_fkey foreign key (problem) references public.problems (id)
) tablespace pg_default;
alter table public.challenges enable row level security;
create policy "The challagers can see their challenges" on "public"."challenges" for select to public using (auth.uid() = author) with check (true)