feat(api): embed slots with ov replica and public feed
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
-- P4b Task 2:展示位域(embed_slots/embed_slot_members)。
|
||||
-- 校对手决:Prisma 生成 DDL 固定 utf8mb4_unicode_ci,逐表改写为库级约定的
|
||||
-- utf8mb4_0900_bin(publicToken 的大小写敏感唯一语义依赖它,同 albums 口径)。
|
||||
-- · embed_slots 双版本位:configVersion(嵌入端可见配置版本,任一管理面
|
||||
-- 变更递增)/entityVersion(slot.updated 同步事件版本);无删除端点,
|
||||
-- enabled=false 即下线。settings 为归一化 EmbedSlotSettings 全集 JSON。
|
||||
-- · embed_slot_members:授权成员表**建而未用**(P4b 权限简化 admin-only,
|
||||
-- 登记偏差;P5 授权面按需启用)。
|
||||
-- · 两表均扁平字符串外键(albumId/userId/slotId 无 FK 约束,同相册域约定)。
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `embed_slots` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`publicToken` VARCHAR(32) NOT NULL,
|
||||
`name` VARCHAR(64) NOT NULL,
|
||||
`enabled` BOOLEAN NOT NULL DEFAULT true,
|
||||
`albumId` VARCHAR(64) NULL,
|
||||
`configVersion` INTEGER NOT NULL DEFAULT 1,
|
||||
`settings` JSON NOT NULL,
|
||||
`entityVersion` INTEGER NOT NULL DEFAULT 1,
|
||||
`createdAt` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
||||
`updatedAt` DATETIME(6) NOT NULL,
|
||||
|
||||
UNIQUE INDEX `embed_slots_publicToken_key`(`publicToken`),
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE `embed_slot_members` (
|
||||
`id` VARCHAR(191) NOT NULL,
|
||||
`slotId` VARCHAR(64) NOT NULL,
|
||||
`userId` VARCHAR(64) NOT NULL,
|
||||
`permission` VARCHAR(32) NOT NULL,
|
||||
`createdAt` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
||||
|
||||
INDEX `embed_slot_members_userId_idx`(`userId`),
|
||||
UNIQUE INDEX `embed_slot_members_slotId_userId_key`(`slotId`, `userId`),
|
||||
PRIMARY KEY (`id`)
|
||||
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin;
|
||||
Reference in New Issue
Block a user