-- +goose Up
CREATE TABLE IF NOT EXISTS billing_snapshots (
  tenant_id uuid PRIMARY KEY REFERENCES tenants(id) ON DELETE CASCADE,
  stripe_customer_id text NOT NULL DEFAULT '',
  stripe_subscription_id text NOT NULL DEFAULT '',
  status text NOT NULL DEFAULT 'none',
  plan_code text NOT NULL DEFAULT 'starter',
  price_id text NOT NULL DEFAULT '',
  cancel_at_period_end boolean NOT NULL DEFAULT false,
  current_period_start timestamptz,
  current_period_end timestamptz,
  payment_method_brand text NOT NULL DEFAULT '',
  payment_method_last4 text NOT NULL DEFAULT '',
  last_synced_at timestamptz,
  created_at timestamptz NOT NULL DEFAULT now(),
  updated_at timestamptz NOT NULL DEFAULT now()
);

CREATE INDEX IF NOT EXISTS idx_subscription_events_processed ON subscription_events (processed_at);

-- +goose Down
DROP INDEX IF EXISTS idx_subscription_events_processed;
DROP TABLE IF EXISTS billing_snapshots;
