feat(registration): add watcher capacity limits and update pricing
Add 70-person capacity limit for watchers with real-time availability checks. Update drink card pricing to €5 per person (was €5 base + €2 per guest). Add feature flag to bypass registration countdown. Show under-review notice for performer registrations. Update FAQ performance duration from 5-7 to 5 minutes.
This commit is contained in:
@@ -3,3 +3,10 @@
|
||||
* Change this date to reschedule — all gating logic imports from here.
|
||||
*/
|
||||
export const REGISTRATION_OPENS_AT = new Date("2026-03-16T19:00:00+01:00");
|
||||
|
||||
/**
|
||||
* Feature flag for the registration countdown gate.
|
||||
* Set to `false` to bypass the countdown and always show the registration form.
|
||||
* Set to `true` to enforce the countdown until REGISTRATION_OPENS_AT.
|
||||
*/
|
||||
export const COUNTDOWN_ENABLED = true;
|
||||
|
||||
@@ -6,8 +6,9 @@
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
export const DRINK_CARD_BASE = 5; // €5 for primary registrant
|
||||
export const DRINK_CARD_PER_GUEST = 2; // €2 per additional guest
|
||||
export const DRINK_CARD_PER_GUEST = 5; // €5 per additional guest (same as primary)
|
||||
export const MAX_GUESTS = 9;
|
||||
export const MAX_WATCHERS = 70; // max total watcher spots (people, not registrations)
|
||||
|
||||
/** Returns drink card value in euros for a given number of extra guests. */
|
||||
export function calculateDrinkCard(guestCount: number): number {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import { REGISTRATION_OPENS_AT } from "./opening";
|
||||
import { COUNTDOWN_ENABLED, REGISTRATION_OPENS_AT } from "./opening";
|
||||
|
||||
interface RegistrationOpenState {
|
||||
isOpen: boolean;
|
||||
@@ -10,6 +10,9 @@ interface RegistrationOpenState {
|
||||
}
|
||||
|
||||
function compute(): RegistrationOpenState {
|
||||
if (!COUNTDOWN_ENABLED) {
|
||||
return { isOpen: true, days: 0, hours: 0, minutes: 0, seconds: 0 };
|
||||
}
|
||||
const diff = REGISTRATION_OPENS_AT.getTime() - Date.now();
|
||||
if (diff <= 0) {
|
||||
return { isOpen: true, days: 0, hours: 0, minutes: 0, seconds: 0 };
|
||||
|
||||
Reference in New Issue
Block a user