Adds 4 new models for grand-finale logistics PR 1: - FinalistSlotQuota: per-category mutable quotas - WaitlistEntry: ranked per-category waitlist - FinalistConfirmation: token-gated confirmation lifecycle (PENDING / CONFIRMED / DECLINED / EXPIRED / SUPERSEDED) with optional decline reason - AttendingMember: who from each team is attending, with visa flag Plus Program.defaultAttendeeCap (default 3) for the per-edition team attendance cap. Migration is purely additive: no DROP/ALTER COLUMN/RENAME on existing schema. All FKs ON DELETE CASCADE only fire on parent deletion.
86 KiB
86 KiB