rallly/packages/database/prisma/models/event.prisma
2025-06-15 13:58:37 +02:00

77 lines
2.8 KiB
Text

enum ScheduledEventStatus {
confirmed
canceled
unconfirmed
@@map("scheduled_event_status")
}
enum ScheduledEventInviteStatus {
pending
accepted
declined
tentative
@@map("scheduled_event_invite_status")
}
model ScheduledEvent {
id String @id @default(cuid())
userId String @map("user_id")
spaceId String @map("space_id")
title String
description String?
location String?
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
status ScheduledEventStatus @default(confirmed)
timeZone String? @map("time_zone")
start DateTime
end DateTime
allDay Boolean @default(false) @map("all_day")
deletedAt DateTime? @map("deleted_at")
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
space Space @relation(fields: [spaceId], references: [id], onDelete: Cascade)
rescheduledDates RescheduledEventDate[]
invites ScheduledEventInvite[]
polls Poll[]
@@index([spaceId], type: Hash)
@@index([userId], type: Hash)
@@map("scheduled_events")
}
model RescheduledEventDate {
id String @id @default(cuid())
scheduledEventId String @map("scheduled_event_id")
start DateTime @map("start")
end DateTime @map("end")
allDay Boolean @default(false) @map("all_day")
createdAt DateTime @default(now()) @map("created_at")
scheduledEvent ScheduledEvent @relation(fields: [scheduledEventId], references: [id], onDelete: Cascade)
@@index([scheduledEventId])
@@map("rescheduled_event_dates")
}
model ScheduledEventInvite {
id String @id @default(cuid())
scheduledEventId String @map("scheduled_event_id")
inviteeName String @map("invitee_name")
inviteeEmail String @map("invitee_email")
inviteeId String? @map("invitee_id")
inviteeTimeZone String? @map("invitee_time_zone")
status ScheduledEventInviteStatus @default(pending)
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
scheduledEvent ScheduledEvent @relation(fields: [scheduledEventId], references: [id], onDelete: Cascade)
user User? @relation(fields: [inviteeId], references: [id], onDelete: SetNull) // Optional relation to User model
@@index([scheduledEventId])
@@index([inviteeId])
@@index([inviteeEmail])
@@map("scheduled_event_invites")
}