Add /crush33 comp-ticket portal + ticket-type badge on scan
Some checks failed
Build Android APK / build-apk (push) Failing after 1h11m4s
Some checks failed
Build Android APK / build-apk (push) Failing after 1h11m4s
Portal (/crush33): password-gated page (PORTAL_PASSWORD) for admins to create entry-only tickets from just name + email, with a category (Guest/Worker/Performer/Volunteer/Speaker). Creates a 1-admission ticket, emails the QR, and shows the QR on-screen. New Ticket Type column. Scanner: shows a prominent TYPE badge (🎭 PERFORMER, 🛠️ WORKER, …) on the confirm + success screens and in admin, so staff can see it's a special ticket. Added Worker + Performer personas to /test. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
b7c77afe02
commit
4b78c82b35
9 changed files with 230 additions and 0 deletions
|
|
@ -24,6 +24,7 @@ export const COL = {
|
|||
utv: "UTV",
|
||||
iceAccess: "Ice Access",
|
||||
paymentMethod: "Payment Method",
|
||||
ticketType: "Ticket Type", // "" for regular; Guest/Worker/Performer/Volunteer/Speaker for portal comps
|
||||
|
||||
// Columns this system manages:
|
||||
code: "Ticket Code",
|
||||
|
|
@ -94,6 +95,7 @@ export interface TicketView {
|
|||
code: string;
|
||||
name: string;
|
||||
email: string;
|
||||
ticketType: string; // "" for regular; Guest/Worker/... for special tickets
|
||||
total: number;
|
||||
redeemed: number;
|
||||
remaining: number;
|
||||
|
|
@ -121,6 +123,7 @@ export function toView(rec: NocoRecord): TicketView {
|
|||
code: String(rec[COL.code] ?? ""),
|
||||
name: String(rec[COL.name] ?? ""),
|
||||
email: String(rec[COL.email] ?? ""),
|
||||
ticketType: String(rec[COL.ticketType] ?? ""),
|
||||
total,
|
||||
redeemed,
|
||||
remaining: Math.max(0, total - redeemed),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue