Wenn die VIP-Liste (Layer 2) voll ist (>30 eigene Web-Domains) und der User eine neue Custom-Domain hinzufügt, ersetzt er bewusst eine bestehende — der Tausch greift in der VIP erst nach 24h Cooldown. - Schema: UserCustomDomain.vipDeferUntil + vipEvictAt (Migration 20260522_add_vip_swap_fields, additiv + nullable) - getWebCustomDomains: filtert deferred (noch nicht in VIP) + evicted (Cooldown durch → raus) — lazy ausgewertet, kein Cron - POST /api/custom-domains: neue Web-Domain über dem 30er-Cap → wird zurückgestellt (vipDeferUntil gesetzt), Response-Flag vipFull - POST /api/custom-domains/vip-swap: setzt effectiveAt = jetzt+24h auf neue + ersetzte Domain - Layer 1 bleibt unberührt — die neue Domain ist dort sofort aktiv Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Description
Self-hosted mirror of rebreak monorepo
Languages
TypeScript
68%
Vue
7.9%
Swift
7.7%
Shell
4.2%
JavaScript
3.1%
Other
8.9%