-- Migration 017: Billing Enhancements -- Adds support for annual billing, free trials, ACH/invoice billing, -- and past_due grace period status. -- ============================================================================ -- 1. Add billing_interval column (month or year) -- ============================================================================ ALTER TABLE shared.organizations ADD COLUMN IF NOT EXISTS billing_interval VARCHAR(20) DEFAULT 'month'; -- ============================================================================ -- 2. Add collection_method column (charge_automatically or send_invoice) -- ============================================================================ ALTER TABLE shared.organizations ADD COLUMN IF NOT EXISTS collection_method VARCHAR(20) DEFAULT 'charge_automatically'; -- ============================================================================ -- 3. Update status CHECK to include 'past_due' -- ============================================================================ ALTER TABLE shared.organizations DROP CONSTRAINT IF EXISTS organizations_status_check; ALTER TABLE shared.organizations ADD CONSTRAINT organizations_status_check CHECK (status IN ('active', 'suspended', 'trial', 'archived', 'past_due')); -- ============================================================================ -- 4. Ensure plan_level CHECK includes SaaS tiers (idempotent with 015) -- ============================================================================ ALTER TABLE shared.organizations DROP CONSTRAINT IF EXISTS organizations_plan_level_check; ALTER TABLE shared.organizations ADD CONSTRAINT organizations_plan_level_check CHECK (plan_level IN ('standard', 'premium', 'enterprise', 'starter', 'professional'));