Add announcement editing and reliable per-recipient mail delivery
This commit is contained in:
@@ -155,6 +155,7 @@ model Kita {
|
||||
dutyAssignments DutyAssignment[]
|
||||
absences Absence[]
|
||||
announcements Announcement[]
|
||||
announcementEmails AnnouncementEmail[]
|
||||
invitations Invitation[]
|
||||
termine Termin[]
|
||||
mitbringselItems MitbringselItem[]
|
||||
@@ -280,6 +281,7 @@ model User {
|
||||
alarmNotifications NotdienstAlarmNotification[]
|
||||
alarmEmails NotdienstAlarmEmail[]
|
||||
notdienstEmails NotdienstEmail[]
|
||||
announcementEmails AnnouncementEmail[]
|
||||
|
||||
@@index([kitaId])
|
||||
@@index([familyId])
|
||||
@@ -697,6 +699,10 @@ model Announcement {
|
||||
title String
|
||||
content String
|
||||
audience AnnouncementAudience @default(ALLE)
|
||||
revision Int @default(1)
|
||||
editedAt DateTime?
|
||||
updatedAt DateTime @default(now())
|
||||
emailReady Boolean @default(true)
|
||||
|
||||
authorId String
|
||||
author User @relation("AnnouncementAuthor", fields: [authorId], references: [id], onDelete: Cascade)
|
||||
@@ -705,13 +711,40 @@ model Announcement {
|
||||
|
||||
attachments Attachment[]
|
||||
reads AnnouncementRead[]
|
||||
emails AnnouncementEmail[]
|
||||
|
||||
@@index([kitaId, createdAt])
|
||||
@@index([kitaId, updatedAt])
|
||||
@@index([authorId])
|
||||
@@unique([id, kitaId])
|
||||
@@map("announcements")
|
||||
}
|
||||
|
||||
model AnnouncementEmail {
|
||||
id String @id @default(cuid())
|
||||
kitaId String
|
||||
kita Kita @relation(fields: [kitaId], references: [id], onDelete: Cascade)
|
||||
announcementId String
|
||||
announcement Announcement @relation(fields: [announcementId], references: [id], onDelete: Cascade)
|
||||
userId String
|
||||
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
|
||||
revision Int
|
||||
createdAt DateTime @default(now())
|
||||
nextAttemptAt DateTime @default(now())
|
||||
attempts Int @default(0)
|
||||
leaseUntil DateTime?
|
||||
claimToken String?
|
||||
sentAt DateTime?
|
||||
skippedAt DateTime?
|
||||
failed Boolean @default(false)
|
||||
lastError String?
|
||||
|
||||
@@unique([announcementId, revision, userId])
|
||||
@@index([kitaId, announcementId, revision])
|
||||
@@index([sentAt, skippedAt, nextAttemptAt])
|
||||
@@map("announcement_emails")
|
||||
}
|
||||
|
||||
model Attachment {
|
||||
id String @id @default(cuid())
|
||||
announcementId String
|
||||
|
||||
Reference in New Issue
Block a user