-- VIP-Slot-Replace: Cooldown-Zeitstempel für den 24h-Swap der VIP-Liste (Layer 2).
--
-- Wenn die VIP-Liste voll ist und der User eine neue Custom-Domain hinzufügt,
-- ersetzt er bewusst eine bestehende eigene Domain. Der Tausch greift in der
-- VIP-Liste (Layer 2) erst nach 24h Cooldown — Layer 1 schützt die neue Domain
-- sofort.
--
--   vip_defer_until — die neu hinzugefügte Domain ist erst ab diesem Zeitpunkt
--     Teil der VIP-Layer-2-Liste.
--   vip_evict_at    — die zum Ersetzen gewählte Domain fällt ab diesem Zeitpunkt
--     aus der VIP-Liste.
--
-- Beide NULL = normaler Zustand (kein laufender Swap). Backfill: alle
-- bestehenden Zeilen bekommen NULL — keine Verhaltensänderung.

ALTER TABLE "rebreak"."user_custom_domains"
    ADD COLUMN IF NOT EXISTS "vip_defer_until" TIMESTAMPTZ NULL;
ALTER TABLE "rebreak"."user_custom_domains"
    ADD COLUMN IF NOT EXISTS "vip_evict_at" TIMESTAMPTZ NULL;
