Files
acmcc/supabase/migrations/20260414024912_99697599-f716-4aa7-b3a4-09c8af76d286.sql
T
2026-06-01 20:19:26 -04:00

35 lines
1.5 KiB
SQL

CREATE TABLE public.compliance_checklists (
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
association_id UUID NOT NULL REFERENCES public.associations(id) ON DELETE CASCADE,
fiscal_year INTEGER NOT NULL,
items JSONB NOT NULL DEFAULT '[]'::jsonb,
status TEXT NOT NULL DEFAULT 'active',
created_by UUID,
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
UNIQUE (association_id, fiscal_year)
);
ALTER TABLE public.compliance_checklists ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Staff can view compliance checklists"
ON public.compliance_checklists FOR SELECT TO authenticated
USING (public.has_role(auth.uid(), 'admin') OR public.has_role(auth.uid(), 'manager'));
CREATE POLICY "Staff can create compliance checklists"
ON public.compliance_checklists FOR INSERT TO authenticated
WITH CHECK (public.has_role(auth.uid(), 'admin') OR public.has_role(auth.uid(), 'manager'));
CREATE POLICY "Staff can update compliance checklists"
ON public.compliance_checklists FOR UPDATE TO authenticated
USING (public.has_role(auth.uid(), 'admin') OR public.has_role(auth.uid(), 'manager'));
CREATE POLICY "Staff can delete compliance checklists"
ON public.compliance_checklists FOR DELETE TO authenticated
USING (public.has_role(auth.uid(), 'admin') OR public.has_role(auth.uid(), 'manager'));
CREATE TRIGGER update_compliance_checklists_updated_at
BEFORE UPDATE ON public.compliance_checklists
FOR EACH ROW EXECUTE FUNCTION public.update_updated_at_column();