30 lines
1.2 KiB
SQL
30 lines
1.2 KiB
SQL
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 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); |