Files
avbeat-com/supabase/migrations/20260321110000_newsletter_subscribers.sql
2026-05-07 16:39:17 +00:00

34 lines
1.3 KiB
SQL

-- Newsletter subscribers table for SMTP-based email system
CREATE TABLE IF NOT EXISTS public.newsletter_subscribers (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email TEXT NOT NULL UNIQUE,
topics TEXT[] DEFAULT ARRAY[]::TEXT[],
status TEXT NOT NULL DEFAULT 'active' CHECK (status IN ('active', 'unsubscribed')),
subscribed_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP,
unsubscribed_at TIMESTAMPTZ,
created_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX IF NOT EXISTS idx_newsletter_subscribers_email ON public.newsletter_subscribers(email);
CREATE INDEX IF NOT EXISTS idx_newsletter_subscribers_status ON public.newsletter_subscribers(status);
ALTER TABLE public.newsletter_subscribers ENABLE ROW LEVEL SECURITY;
-- Only authenticated users (admins) can read/manage subscribers
DROP POLICY IF EXISTS "admin_manage_newsletter_subscribers" ON public.newsletter_subscribers;
CREATE POLICY "admin_manage_newsletter_subscribers"
ON public.newsletter_subscribers
FOR ALL
TO authenticated
USING (true)
WITH CHECK (true);
-- Allow public inserts (signup form)
DROP POLICY IF EXISTS "public_subscribe_newsletter" ON public.newsletter_subscribers;
CREATE POLICY "public_subscribe_newsletter"
ON public.newsletter_subscribers
FOR INSERT
TO public
WITH CHECK (true);