✨ Challenges
This commit is contained in:
		| @@ -1,14 +1,20 @@ | ||||
| create table public.profiles ( | ||||
|   id uuid not null references auth.users on delete cascade, | ||||
|   username varchar(64), | ||||
|   nickname varchar(256), | ||||
|   school int8, | ||||
|   primary key (id) | ||||
| create table public.profiles | ||||
| ( | ||||
|     id       uuid not null references auth.users on delete cascade, | ||||
|     username varchar(64), | ||||
|     nickname varchar(256), | ||||
|     school   int8, | ||||
|     primary key (id) | ||||
| ); | ||||
| alter table public.profiles enable row level security; | ||||
|  | ||||
| alter table public.profiles | ||||
|     enable row level security; | ||||
|  | ||||
| create policy "Public profiles are viewable by everyone." on profiles for | ||||
| select using (true); | ||||
|     select using (true); | ||||
|  | ||||
| create policy "Users can insert their own profile." on profiles for | ||||
| insert with check (auth.uid() = id); | ||||
|     insert with check (auth.uid() = id); | ||||
|  | ||||
| create policy "Users can update own profile." on profiles for | ||||
| update using (auth.uid() = id); | ||||
|     update using (auth.uid() = id); | ||||
| @@ -1,30 +1,39 @@ | ||||
| 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) | ||||
| 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; | ||||
|  | ||||
| alter table public.problems | ||||
|     enable row level security; | ||||
|  | ||||
| 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) | ||||
|     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; | ||||
|  | ||||
| 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); | ||||
|     select using (is_hidden = false); | ||||
| @@ -1,14 +1,36 @@ | ||||
| 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) | ||||
| 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) | ||||
|  | ||||
| create | ||||
| policy "Enable insert for everyone" on "public"."challenges" | ||||
| as permissive for insert | ||||
| to public | ||||
| with check (true); | ||||
|  | ||||
| create | ||||
| policy "Enable read access for users' own items" on "public"."challenges" | ||||
| as permissive for | ||||
| select | ||||
|     to public | ||||
|     using (author = auth.uid()); | ||||
|  | ||||
| create | ||||
| policy "Enable update access for users' own items" on "public"."challenges" | ||||
| as permissive for | ||||
| update | ||||
|     to public | ||||
|     using (author = auth.uid()) | ||||
| with check (author = auth.uid()) | ||||
		Reference in New Issue
	
	Block a user