feat: add parent announcements and family or child event responses

This commit is contained in:
t.indorf
2026-10-09 21:44:19 +02:00
parent 2d3b82eb80
commit 979f795341
29 changed files with 2031 additions and 472 deletions
+39 -4
View File
@@ -63,6 +63,17 @@ enum TerminStatus {
CANCELLED
}
enum RsvpMode {
CHILD
FAMILY
}
enum AnnouncementAudience {
ELTERN
ERZIEHER
ALLE
}
enum EventParticipationStatus {
ATTENDING
NOT_ATTENDING
@@ -156,6 +167,7 @@ model Kita {
notdienstSwapRequests NotdienstSwapRequest[]
staffProfiles StaffProfile[]
staffHolidays StaffHoliday[]
familyEventParticipations FamilyEventParticipation[]
@@map("kitas")
}
@@ -180,6 +192,7 @@ model Family {
children Child[]
dutyAssignments DutyAssignment[]
notdienstSwapRequestsStarted NotdienstSwapRequest[] @relation("NotdienstSwapRequesterFamily")
familyEventParticipations FamilyEventParticipation[]
@@index([kitaId])
@@map("families")
@@ -668,8 +681,9 @@ model Announcement {
kitaId String
kita Kita @relation(fields: [kitaId], references: [id], onDelete: Cascade)
title String
content String
title String
content String
audience AnnouncementAudience @default(ALLE)
authorId String
author User @relation("AnnouncementAuthor", fields: [authorId], references: [id], onDelete: Cascade)
@@ -762,6 +776,7 @@ model Termin {
/// Teilnahme-Abfrage für Ausflüge und besondere Events.
requiresRsvp Boolean @default(false)
rsvpMode RsvpMode @default(CHILD)
rsvpDeadline DateTime?
participantInfo String?
@@ -776,8 +791,9 @@ model Termin {
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
mitbringselItems MitbringselItem[]
participations EventParticipation[]
mitbringselItems MitbringselItem[]
participations EventParticipation[]
familyParticipations FamilyEventParticipation[]
@@index([kitaId, startDate])
@@index([kitaId, status])
@@ -806,6 +822,25 @@ model EventParticipation {
@@map("event_participations")
}
model FamilyEventParticipation {
id String @id @default(cuid())
kitaId String
kita Kita @relation(fields: [kitaId], references: [id], onDelete: Cascade)
eventId String
event Termin @relation(fields: [eventId], references: [id], onDelete: Cascade)
familyId String
family Family @relation(fields: [familyId], references: [id], onDelete: Cascade)
status EventParticipationStatus
adultCount Int @default(0)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@unique([eventId, familyId])
@@index([kitaId])
@@index([familyId])
@@map("family_event_participations")
}
model MitbringselItem {
id String @id @default(cuid())
kitaId String