feat: add VIP roster tracking and accountability reports
- Add isRosterOnly flag for VIPs who attend but don't need transportation - Add VIP contact fields (phone, email) and emergency contact info - Create Reports page under Admin menu with Accountability Roster - Report shows all VIPs (active + roster-only) with contact/emergency info - Export to CSV functionality for emergency preparedness - VIP list filters roster-only by default with toggle to show - VIP form includes collapsible contact/emergency section - Fix first-user race condition with Serializable transaction - Remove Traccar hardcoded default credentials - Add feature flags endpoint for optional services Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "vips" ADD COLUMN "email" TEXT,
|
||||
ADD COLUMN "emergencyContactName" TEXT,
|
||||
ADD COLUMN "emergencyContactPhone" TEXT,
|
||||
ADD COLUMN "isRosterOnly" BOOLEAN NOT NULL DEFAULT false,
|
||||
ADD COLUMN "phone" TEXT;
|
||||
@@ -52,6 +52,16 @@ model VIP {
|
||||
venueTransport Boolean @default(false)
|
||||
partySize Int @default(1) // Total people: VIP + entourage
|
||||
notes String? @db.Text
|
||||
|
||||
// Roster-only flag: true = just tracking for accountability, not active coordination
|
||||
isRosterOnly Boolean @default(false)
|
||||
|
||||
// Emergency contact info (for accountability reports)
|
||||
phone String?
|
||||
email String?
|
||||
emergencyContactName String?
|
||||
emergencyContactPhone String?
|
||||
|
||||
flights Flight[]
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
Reference in New Issue
Block a user