feat(embed-slots): soft-delete slots — admin entry, ov shutdown via enabled=false snapshot
- 契约 deleteEmbedSlot(DELETE /admin/embed-slots/{id} → 204 幂等;admin 专属)
- cn schema:embed_slots.deletedAt(迁移 20260923120000,本地已应用)
- softDelete:乐观锁 claim + outbox slot.updated(payload enabled 强制 false
——ov 副本无墓碑,enabled=false 快照即公开端 404 下线;priority=high)+ audit
- 列表/加载/更新过滤 deletedAt → 同码 404
- Admin 列表操作「删除」(确认:已接入网站将停止展示、不可恢复)
- API 56/56、admin 87/87 + build 全绿
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -62,6 +62,7 @@ type EmbedSlotRow = Pick<
|
||||
| 'configVersion'
|
||||
| 'settings'
|
||||
| 'entityVersion'
|
||||
| 'deletedAt'
|
||||
>;
|
||||
|
||||
/**
|
||||
@@ -157,7 +158,9 @@ export function buildSlotUpdatedPayload(
|
||||
return {
|
||||
slotId: slot.id,
|
||||
publicToken: slot.publicToken,
|
||||
enabled: slot.enabled,
|
||||
// 软删除(deleteEmbedSlot)行以 enabled=false 快照下线 ov 副本
|
||||
// (embed_slots_ov 无墓碑,enabled=false 即公开端 404)。
|
||||
enabled: slot.deletedAt !== null ? false : slot.enabled,
|
||||
albumId: slot.albumId,
|
||||
albumPublicToken,
|
||||
configVersion: slot.configVersion,
|
||||
|
||||
Reference in New Issue
Block a user