@@ -78,6 +78,9 @@ model Event {
7878 reviews Review []
7979 polls Poll []
8080 teamMembers TeamMember []
81+ ticketTiers TicketTier []
82+ speakers Speaker []
83+ reminders EventReminder []
8184
8285 @@map (" events " )
8386}
@@ -322,4 +325,63 @@ model PushSubscription {
322325 @@map (" push_subscriptions " )
323326}
324327
328+ // ============================================
329+ // TICKET TIERS
330+ // ============================================
331+
332+ model TicketTier {
333+ id String @id @default (uuid () )
334+ eventId String @map (" event_id " )
335+ name String // "VIP", "Standard", "Early Bird"
336+ description String ? @db.Text
337+ priceCents Int @map (" price_cents " )
338+ capacity Int ? // null = unlimited
339+ soldCount Int @default (0 ) @map (" sold_count " )
340+ sortOrder Int @default (0 ) @map (" sort_order " )
341+ isActive Boolean @default (true ) @map (" is_active " )
342+ createdAt DateTime @default (now () ) @map (" created_at " )
343+
344+ event Event @relation (fields : [eventId ] , references : [id ] , onDelete : Cascade )
345+
346+ @@map (" ticket_tiers " )
347+ }
325348
349+ // ============================================
350+ // SPEAKERS
351+ // ============================================
352+
353+ model Speaker {
354+ id String @id @default (uuid () )
355+ eventId String @map (" event_id " )
356+ name String
357+ title String ? // "CEO at Company"
358+ bio String ? @db.Text
359+ photoUrl String ? @map (" photo_url " )
360+ linkedIn String ? @map (" linkedin " )
361+ twitter String ?
362+ sortOrder Int @default (0 ) @map (" sort_order " )
363+ createdAt DateTime @default (now () ) @map (" created_at " )
364+
365+ event Event @relation (fields : [eventId ] , references : [id ] , onDelete : Cascade )
366+
367+ @@map (" speakers " )
368+ }
369+
370+ // ============================================
371+ // EVENT REMINDERS
372+ // ============================================
373+
374+ model EventReminder {
375+ id String @id @default (uuid () )
376+ eventId String @map (" event_id " )
377+ hoursBeforeEvent Int @map (" hours_before_event " ) // 24, 2, etc.
378+ subject String
379+ message String @db.Text
380+ sentAt DateTime ? @map (" sent_at " )
381+ isActive Boolean @default (true ) @map (" is_active " )
382+ createdAt DateTime @default (now () ) @map (" created_at " )
383+
384+ event Event @relation (fields : [eventId ] , references : [id ] , onDelete : Cascade )
385+
386+ @@map (" event_reminders " )
387+ }
0 commit comments