Skip to main content

max / makenotwork

866 B · 21 lines History Blame Raw
1 -- Fan+ consumer subscription table
2 CREATE TABLE fan_plus_subscriptions (
3 id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
4 user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
5 stripe_subscription_id TEXT NOT NULL,
6 stripe_customer_id TEXT NOT NULL,
7 status TEXT NOT NULL DEFAULT 'active',
8 current_period_start TIMESTAMPTZ,
9 current_period_end TIMESTAMPTZ,
10 created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
11 canceled_at TIMESTAMPTZ,
12 CONSTRAINT uq_fan_plus_stripe_sub UNIQUE (stripe_subscription_id),
13 CONSTRAINT uq_fan_plus_active_user UNIQUE (user_id)
14 );
15
16 CREATE INDEX idx_fan_plus_user_id ON fan_plus_subscriptions(user_id);
17 CREATE INDEX idx_fan_plus_status ON fan_plus_subscriptions(status);
18
19 -- Platform-wide promo codes (Fan+ credits)
20 ALTER TABLE promo_codes ADD COLUMN is_platform_wide BOOLEAN NOT NULL DEFAULT false;
21