ALTER TABLE abonnements
  ADD COLUMN IF NOT EXISTS stripe_product_id TEXT,
  ADD COLUMN IF NOT EXISTS stripe_price_id TEXT,
  ADD COLUMN IF NOT EXISTS stripe_lookup_key TEXT,
  ADD COLUMN IF NOT EXISTS stripe_currency TEXT NOT NULL DEFAULT 'eur',
  ADD COLUMN IF NOT EXISTS stripe_interval TEXT,
  ADD COLUMN IF NOT EXISTS stripe_interval_count INTEGER NOT NULL DEFAULT 1,
  ADD COLUMN IF NOT EXISTS stripe_active BOOLEAN NOT NULL DEFAULT false,
  ADD COLUMN IF NOT EXISTS stripe_product_data JSONB,
  ADD COLUMN IF NOT EXISTS stripe_price_data JSONB,
  ADD COLUMN IF NOT EXISTS updated_at TIMESTAMPTZ NOT NULL DEFAULT now();

UPDATE abonnements
SET stripe_price_id = COALESCE(stripe_price_id, id_stripe);

CREATE UNIQUE INDEX IF NOT EXISTS abonnements_stripe_product_id_idx
  ON abonnements (stripe_product_id)
  WHERE stripe_product_id IS NOT NULL;

CREATE UNIQUE INDEX IF NOT EXISTS abonnements_stripe_price_id_idx
  ON abonnements (stripe_price_id)
  WHERE stripe_price_id IS NOT NULL;

CREATE INDEX IF NOT EXISTS abonnements_stripe_lookup_key_idx
  ON abonnements (stripe_lookup_key)
  WHERE stripe_lookup_key IS NOT NULL;
