feat(api): embed slots with ov replica and public feed
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -332,3 +332,33 @@ model user_sync_state {
|
||||
runCount Int @default(0) // 已启动批次数(含失败),驱动周期全量对账
|
||||
updatedAt DateTime @updatedAt @db.DateTime(6)
|
||||
}
|
||||
// —— 展示位域(P4b Task 2,悬浮轮播组件挂载点)——
|
||||
// cn 权威实体:admin 建槽/绑定相册,经 outbox slot.updated 事件同步 ov 副本
|
||||
// (embed_slots_ov,载荷全量快照)。扁平字符串外键(albumId 无 relation/FK,
|
||||
// 同相册域约定)。双版本位:configVersion 是「嵌入端可见」的配置版本(任一
|
||||
// 管理面变更递增,公开端 ETag 组成部分);entityVersion 是同步版本(同相册
|
||||
// 模式,事务内自增)。无删除端点:enabled=false 即下线(软停用)。
|
||||
// embed_slot_members:授权成员表**建而未用**(P4b 权限简化为 admin-only——
|
||||
// 需求「创建者只操作被授权展示位」的授权面登记偏差,P5 按需出 API/UI)。
|
||||
model embed_slots {
|
||||
id String @id @default(cuid())
|
||||
publicToken String @unique @db.VarChar(32) // 嵌入代码 data-slot 引用(24 字符 [0-9a-z],同相册令牌口径)
|
||||
name String @db.VarChar(64)
|
||||
enabled Boolean @default(true)
|
||||
albumId String? @db.VarChar(64) // 绑定相册;null=未绑定(公开端 404)
|
||||
configVersion Int @default(1) // 任一管理面变更递增(嵌入端整体重置渲染依据)
|
||||
settings Json // EmbedSlotSettings 归一化全集(字段恒齐全)
|
||||
entityVersion Int @default(1) // slot.updated 事件版本(同 photos 模式)
|
||||
createdAt DateTime @default(now()) @db.DateTime(6)
|
||||
updatedAt DateTime @updatedAt @db.DateTime(6)
|
||||
}
|
||||
model embed_slot_members {
|
||||
id String @id @default(cuid())
|
||||
slotId String @db.VarChar(64)
|
||||
userId String @db.VarChar(64)
|
||||
permission String @db.VarChar(32) // manage|view(P4b 未用,P5 授权面按需启用)
|
||||
createdAt DateTime @default(now()) @db.DateTime(6)
|
||||
|
||||
@@unique([slotId, userId])
|
||||
@@index([userId])
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user