25 lines
1.8 KiB
YAML
25 lines
1.8 KiB
YAML
# Sync Streams (edition 3): 任务模块 6 表 + User (展示用)
|
|
# 引号保留 PG PascalCase 标识; 主键要求: 同步表必须输出 text 型 id 列 => CAST("id" AS TEXT)
|
|
# 可见性: 用户能看到自己参与的项目 (ProjectMember), 及其下全部任务域数据
|
|
# 见 docs/V0.2/离线编辑模块/0.2.1实施方案.md
|
|
|
|
config:
|
|
edition: 3
|
|
|
|
streams:
|
|
iboard_users:
|
|
auto_subscribe: true
|
|
query: SELECT CAST("id" AS TEXT) AS "id", "name", "email" FROM "User"
|
|
|
|
iboard_task_data:
|
|
auto_subscribe: true
|
|
with:
|
|
my_projects: SELECT "projectId" FROM "ProjectMember" WHERE CAST("userId" AS TEXT) = auth.user_id()
|
|
queries:
|
|
- SELECT CAST("id" AS TEXT) AS "id", "uuid", "code", "name", "ownerId", "isPersonal", "archived", "notes", "taskKinds", "icon", "createdAt", "updatedAt" FROM "Project" WHERE "id" IN my_projects
|
|
- SELECT CAST("id" AS TEXT) AS "id", "uuid", "projectId", "userId", "permission", "createdAt" FROM "ProjectMember" WHERE "projectId" IN my_projects
|
|
- SELECT CAST("id" AS TEXT) AS "id", "uuid", "projectId", "name", "sortOrder", "boundStatus", "retention", "createdAt", "updatedAt" FROM "BoardColumn" WHERE "projectId" IN my_projects
|
|
- SELECT CAST("id" AS TEXT) AS "id", "uuid", "projectId", "columnId", "parentId", "title", "description", "kind", "markDate", "status", "doneAt", "assigneeId", "creatorId", "extras", "sortOrder", "number", "createdAt", "updatedAt" FROM "Task" WHERE "projectId" IN my_projects
|
|
- SELECT CAST("id" AS TEXT) AS "id", "uuid", "taskId", "userId" FROM "TaskMember" WHERE "taskId" IN (SELECT "id" FROM "Task" WHERE "projectId" IN my_projects)
|
|
- SELECT CAST("id" AS TEXT) AS "id", "uuid", "taskId", "name" FROM "TaskTag" WHERE "taskId" IN (SELECT "id" FROM "Task" WHERE "projectId" IN my_projects)
|