✨ 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