63 lines
1.3 KiB
Plaintext
63 lines
1.3 KiB
Plaintext
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
model User {
|
|
id String @id @default(cuid())
|
|
email String @unique
|
|
password String? // hashed password
|
|
name String?
|
|
username String @unique
|
|
role Role @default(GUEST)
|
|
events Event[] @relation("EventCreator")
|
|
createdAt DateTime @default(now())
|
|
}
|
|
|
|
enum Role {
|
|
COUPLE
|
|
PLANNER
|
|
GUEST
|
|
}
|
|
|
|
model Event {
|
|
id String @id @default(cuid())
|
|
name String
|
|
date DateTime?
|
|
location String?
|
|
creator User @relation("EventCreator", fields: [creatorId], references: [id])
|
|
creatorId String
|
|
guests Guest[]
|
|
createdAt DateTime @default(now())
|
|
}
|
|
|
|
model Guest {
|
|
id String @id @default(cuid())
|
|
event Event @relation(fields: [eventId], references: [id])
|
|
eventId String
|
|
name String
|
|
email String?
|
|
rsvp RsvpStatus @default(PENDING)
|
|
}
|
|
|
|
enum RsvpStatus {
|
|
YES
|
|
NO
|
|
PENDING
|
|
}
|
|
|
|
model InviteToken {
|
|
id String @id @default(cuid())
|
|
email String @unique
|
|
role Role
|
|
token String @unique
|
|
eventId String?
|
|
expiresAt DateTime
|
|
accepted Boolean @default(false)
|
|
createdAt DateTime @default(now())
|
|
}
|