33 lines
1.4 KiB
PL/PgSQL
33 lines
1.4 KiB
PL/PgSQL
CREATE TABLE public.mvp_voti (
|
|
id uuid NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
|
|
match_id text NOT NULL,
|
|
votante_id text NOT NULL,
|
|
votato_id text NOT NULL,
|
|
votato_nome text NOT NULL,
|
|
created_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
updated_at timestamp with time zone NOT NULL DEFAULT now(),
|
|
UNIQUE (match_id, votante_id)
|
|
);
|
|
|
|
GRANT SELECT, INSERT, UPDATE, DELETE ON public.mvp_voti TO anon;
|
|
GRANT SELECT, INSERT, UPDATE, DELETE ON public.mvp_voti TO authenticated;
|
|
GRANT ALL ON public.mvp_voti TO service_role;
|
|
|
|
ALTER TABLE public.mvp_voti ENABLE ROW LEVEL SECURITY;
|
|
|
|
CREATE POLICY "Chiunque puo leggere i voti MVP" ON public.mvp_voti FOR SELECT TO anon, authenticated USING (true);
|
|
CREATE POLICY "Chiunque puo votare l MVP" ON public.mvp_voti FOR INSERT TO anon, authenticated WITH CHECK (true);
|
|
CREATE POLICY "Chiunque puo cambiare il proprio voto" ON public.mvp_voti FOR UPDATE TO anon, authenticated USING (true) WITH CHECK (true);
|
|
CREATE POLICY "Chiunque puo togliere il proprio voto" ON public.mvp_voti FOR DELETE TO anon, authenticated USING (true);
|
|
|
|
CREATE OR REPLACE FUNCTION public.update_updated_at_column()
|
|
RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
NEW.updated_at = now();
|
|
RETURN NEW;
|
|
END;
|
|
$$ LANGUAGE plpgsql SET search_path = public;
|
|
|
|
CREATE TRIGGER update_mvp_voti_updated_at
|
|
BEFORE UPDATE ON public.mvp_voti
|
|
FOR EACH ROW EXECUTE FUNCTION public.update_updated_at_column(); |