mirror of
https://github.com/lukevella/rallly.git
synced 2025-07-24 11:47:24 +02:00
77 lines
2.8 KiB
Text
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")
|
|
}
|