Files
acmcc/supabase/migrations/20260421030311_70f3bc6a-8fa9-4e72-afc4-aa98080ef286.sql
T
2026-06-01 20:19:26 -04:00

37 lines
1.6 KiB
SQL

CREATE TABLE public.mailchimp_configs (
id UUID NOT NULL DEFAULT gen_random_uuid() PRIMARY KEY,
association_id UUID NOT NULL UNIQUE REFERENCES public.associations(id) ON DELETE CASCADE,
api_key TEXT NOT NULL,
server_prefix TEXT NOT NULL,
audience_id TEXT,
audience_name TEXT,
last_sync_at TIMESTAMP WITH TIME ZONE,
last_sync_status TEXT,
last_sync_count INTEGER DEFAULT 0,
last_sync_error TEXT,
created_by UUID,
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()
);
ALTER TABLE public.mailchimp_configs ENABLE ROW LEVEL SECURITY;
CREATE POLICY "Staff can view mailchimp configs"
ON public.mailchimp_configs FOR SELECT
USING (public.has_role(auth.uid(), 'admin'::public.app_role) OR public.has_role(auth.uid(), 'manager'::public.app_role));
CREATE POLICY "Staff can insert mailchimp configs"
ON public.mailchimp_configs FOR INSERT
WITH CHECK (public.has_role(auth.uid(), 'admin'::public.app_role) OR public.has_role(auth.uid(), 'manager'::public.app_role));
CREATE POLICY "Staff can update mailchimp configs"
ON public.mailchimp_configs FOR UPDATE
USING (public.has_role(auth.uid(), 'admin'::public.app_role) OR public.has_role(auth.uid(), 'manager'::public.app_role));
CREATE POLICY "Staff can delete mailchimp configs"
ON public.mailchimp_configs FOR DELETE
USING (public.has_role(auth.uid(), 'admin'::public.app_role) OR public.has_role(auth.uid(), 'manager'::public.app_role));
CREATE TRIGGER update_mailchimp_configs_updated_at
BEFORE UPDATE ON public.mailchimp_configs
FOR EACH ROW EXECUTE FUNCTION public.update_updated_at_column();