Files
flatrender/backend/db/migrations/19_notification_campaigns.sql
T

27 lines
1.3 KiB
SQL
Raw Normal View History

-- =====================================================================
-- NOTIFICATION SCHEMA — Part 19: marketing campaigns
-- A campaign sends an SMS or Email to a user segment (resolved from identity.users)
-- via the configured channel providers.
-- =====================================================================
SET search_path TO notification, public;
CREATE TABLE IF NOT EXISTS campaigns (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
tenant_id UUID NOT NULL,
name TEXT NOT NULL,
channel TEXT NOT NULL, -- 'sms' | 'email'
audience TEXT NOT NULL DEFAULT 'all', -- 'all' | 'verified' | 'with_plan'
subject TEXT, -- email only
body_html TEXT, -- email body / sms text
template_code TEXT, -- optional email template
status TEXT NOT NULL DEFAULT 'Draft', -- Draft | Sending | Sent | Failed
total_count INT NOT NULL DEFAULT 0,
sent_count INT NOT NULL DEFAULT 0,
failed_count INT NOT NULL DEFAULT 0,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
sent_at TIMESTAMPTZ
);
CREATE INDEX IF NOT EXISTS idx_campaigns_tenant ON campaigns (tenant_id, created_at DESC);