feat: member portal Sprint 2 — digest history page and restore Digest/DigestConfig schema models
- Restore Digest + DigestConfig models to schema.prisma (wiped by prior git reset) - Add Tenant.digestConfig / Tenant.digests relations - GET /my/digest API endpoint (last 20 digests, truncated summary) - BFF route /api/my/digest - /my/digest page: digest cards with date, message count, summary preview - Add Digest nav item to MemberShell sidebar Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -88,6 +88,8 @@ model Tenant {
|
||||
auditEvents AuditEvent[]
|
||||
rules TenantRule[]
|
||||
groupAccesses GroupAccess[]
|
||||
digestConfig DigestConfig?
|
||||
digests Digest[]
|
||||
}
|
||||
|
||||
enum AdminRole {
|
||||
@@ -495,3 +497,34 @@ model TenantRule {
|
||||
@@index([tenantId, isActive])
|
||||
@@index([tenantId, matchType])
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// Digest
|
||||
// ============================================================================
|
||||
|
||||
model DigestConfig {
|
||||
id String @id @default(cuid())
|
||||
tenantId String @unique
|
||||
tenant Tenant @relation(fields: [tenantId], references: [id])
|
||||
targetGroupJid String
|
||||
targetAccountId String
|
||||
scheduleHour Int @default(20)
|
||||
scheduleMinute Int @default(0)
|
||||
isActive Boolean @default(true)
|
||||
lastSentAt DateTime?
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
}
|
||||
|
||||
model Digest {
|
||||
id String @id @default(cuid())
|
||||
tenantId String
|
||||
tenant Tenant @relation(fields: [tenantId], references: [id])
|
||||
content String
|
||||
messageIds String[]
|
||||
digestDate DateTime
|
||||
sentAt DateTime @default(now())
|
||||
|
||||
@@unique([tenantId, digestDate])
|
||||
@@index([tenantId])
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user