feat: 实现投瓶和异步内容审核
This commit is contained in:
+21
-16
@@ -193,23 +193,25 @@ model RefreshToken {
|
||||
}
|
||||
|
||||
model Bottle {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
authorId String @map("author_id") @db.Uuid
|
||||
contentText String @map("content_text") @db.Text
|
||||
reviewStatus ReviewStatus @default(DRAFT) @map("review_status")
|
||||
poolStatus BottlePoolStatus @default(CLOSED) @map("pool_status")
|
||||
version Int @default(1)
|
||||
approvedAt DateTime? @map("approved_at") @db.Timestamptz(3)
|
||||
consumedAt DateTime? @map("consumed_at") @db.Timestamptz(3)
|
||||
expiresAt DateTime? @map("expires_at") @db.Timestamptz(3)
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
||||
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
|
||||
author Account @relation(fields: [authorId], references: [id], onDelete: Restrict)
|
||||
leases BottlePickLease[]
|
||||
pickHistory BottlePickHistory[]
|
||||
conversation Conversation?
|
||||
reports Report[]
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
authorId String @map("author_id") @db.Uuid
|
||||
clientRequestId String @default(uuid()) @map("client_request_id") @db.VarChar(128)
|
||||
contentText String @map("content_text") @db.Text
|
||||
reviewStatus ReviewStatus @default(DRAFT) @map("review_status")
|
||||
poolStatus BottlePoolStatus @default(CLOSED) @map("pool_status")
|
||||
version Int @default(1)
|
||||
approvedAt DateTime? @map("approved_at") @db.Timestamptz(3)
|
||||
consumedAt DateTime? @map("consumed_at") @db.Timestamptz(3)
|
||||
expiresAt DateTime? @map("expires_at") @db.Timestamptz(3)
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
||||
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
|
||||
author Account @relation(fields: [authorId], references: [id], onDelete: Restrict)
|
||||
leases BottlePickLease[]
|
||||
pickHistory BottlePickHistory[]
|
||||
conversation Conversation?
|
||||
reports Report[]
|
||||
|
||||
@@unique([authorId, clientRequestId])
|
||||
@@index([poolStatus, createdAt])
|
||||
@@index([reviewStatus, createdAt])
|
||||
@@index([authorId, createdAt])
|
||||
@@ -380,6 +382,7 @@ model ModerationTask {
|
||||
assignedTo Account? @relation("Moderator", fields: [assignedToId], references: [id], onDelete: SetNull)
|
||||
sanctions Sanction[]
|
||||
|
||||
@@unique([targetType, targetId])
|
||||
@@index([status, createdAt])
|
||||
@@index([targetType, targetId])
|
||||
@@index([assignedToId, status])
|
||||
@@ -426,10 +429,12 @@ model OutboxEvent {
|
||||
aggregateType String @map("aggregate_type") @db.VarChar(100)
|
||||
aggregateId String @map("aggregate_id") @db.Uuid
|
||||
eventType String @map("event_type") @db.VarChar(150)
|
||||
dedupeKey String @unique @default(uuid()) @map("dedupe_key") @db.VarChar(255)
|
||||
payload Json
|
||||
status OutboxStatus @default(PENDING)
|
||||
attempts Int @default(0)
|
||||
nextRetryAt DateTime @default(now()) @map("next_retry_at") @db.Timestamptz(3)
|
||||
lockedAt DateTime? @map("locked_at") @db.Timestamptz(3)
|
||||
publishedAt DateTime? @map("published_at") @db.Timestamptz(3)
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
||||
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
|
||||
|
||||
Reference in New Issue
Block a user