update prisma/schema.prisma (add Invitation model)

This commit is contained in:
Giuseppe Lombardo 2026-08-12 17:53:57 +00:00
parent bd96bb2db1
commit 00eaa3d7d6

View File

@ -111,6 +111,13 @@ enum GuestCodeStatus {
REVOKED REVOKED
} }
enum InvitationStatus {
PENDING
ACCEPTED
EXPIRED
REVOKED
}
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// USERS // USERS
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@ -143,6 +150,7 @@ model User {
handoverProtocols HandoverProtocol[] handoverProtocols HandoverProtocol[]
guestCodesIssued GuestCode[] guestCodesIssued GuestCode[]
notifications Notification[] notifications Notification[]
invitationsSent Invitation[] @relation("InvitationsSent")
@@map("users") @@map("users")
} }
@ -168,10 +176,35 @@ model Room {
tickets Ticket[] tickets Ticket[]
inventoryItems Inventory[] inventoryItems Inventory[]
meterReadings MeterReading[] meterReadings MeterReading[]
invitations Invitation[]
@@map("rooms") @@map("rooms")
} }
// ----------------------------------------------------------------------------
// INVITATIONS (Vermieter lädt Mieter per E-Mail ein)
// ----------------------------------------------------------------------------
model Invitation {
id String @id @default(uuid())
email String
token String @unique
role UserRole @default(TENANT)
roomId String? @map("room_id")
room Room? @relation(fields: [roomId], references: [id])
invitedById String @map("invited_by_id")
invitedBy User @relation("InvitationsSent", fields: [invitedById], references: [id])
status InvitationStatus @default(PENDING)
expiresAt DateTime @map("expires_at")
acceptedAt DateTime? @map("accepted_at")
createdAt DateTime @default(now()) @map("created_at")
@@index([email])
@@index([status])
@@map("invitations")
}
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// CONTRACTS // CONTRACTS
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------