mirror of
https://github.com/renee-png/acmcc.git
synced 2026-06-21 01:40:01 +00:00
183fe0a93c
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
37 lines
1.6 KiB
SQL
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(); |