用途:说明 deck(演示文稿)数据如何存储在 SQL 中,以及如何创建、读取、更新和删除 deck,适合在处理 deck 数据前阅读。
存储结构:deck 存于 decks SQL 表,通过 Drizzle ORM 访问。每行包含完整 deck JSON(slides、metadata),放在 data TEXT 列。表结构含 id(主键)、title、data、created_at、updated_at。data 列存 JSON 对象,含 title 与 slides 数组;每个 slide 有 id、HTML content 和可选 layout。
读取:脚本可用 pnpm action list-decks 列出全部 deck(仅元数据)、pnpm action get-deck --id=<deckId> 获取指定 deck 及全部 slides、pnpm action view-screen 查看用户当前内容。API 提供 GET /api/decks(返回 id、title、slide 数量、时间戳)与 GET /api/decks/:id(返回完整数据)。
写入:脚本可用 pnpm action db-exec --sql "INSERT INTO decks (id, title, data) VALUES (?, ?, ?)" --params '["new-id", "Title", "{...}"]' 插入或更新。API 提供 POST /api/decks 创建、PUT /api/decks/:id 更新、DELETE /api/decks/:id 删除。
规则与限制:始终使用 API 或 Drizzle,不要用原始 JSON 文件存储 deck;deck ID 创建后稳定不变;deck 内 slide ID 稳定,用于引用特定 slide;data 列是完整事实来源,title 在顶层重复以便列表查询;deck 变化时触发 SSE 事件(source 为 "resources"),保持 UI 同步。