Files
teatea-pension/.trellis/tasks/archive/2026-07/07-03-collaboration-modules/prd.md

2.7 KiB

Build collaboration modules

Goal

Replace the four reserved "协同" navigation pages with real persisted business modules for 设备运维, 公告通知, 规则预警, and 家属服务 so the local养老机构工作台 can exercise end-to-end CRUD workflows backed by Drizzle/Postgres data.

Confirmed Facts

  • The current navigation already exposes /devices, /notices, /alerts, and /family.
  • These routes currently render ReservedModulePages, and the frontend spec requires reserved modules not to fabricate operational data.
  • The stack uses Next.js App Router, React client components, project-owned Kumo UI adapters, Drizzle/Postgres, route handlers under app/api, and permission gates through requirePermission.
  • Existing seed data is organization-scoped and idempotent for already-initialized workspaces.

Requirements

  • Add real schema, migrations, server operations, API routes, UI pages, permissions, and seed data for all four collaboration modules.
  • Implement complete CRUD for each module's core records, plus the key status transitions needed for daily operations.
  • Keep all records organization-scoped and prevent cross-organization reads or mutations.
  • Add audit logs for create, update, delete, and status transition mutations.
  • Replace reserved pages for both unscoped and organization-scoped app routes.
  • Keep UI consistent with existing workspaces: server page loads initial data, client workspace handles filters, tables, dialogs, and mutations.
  • Preserve TypeScript strictness and avoid new external dependencies.

Module Scope

  • 设备运维: equipment/device assets and maintenance tickets.
  • 公告通知: notices, publish/retract lifecycle, and account read receipts.
  • 规则预警: alert rules and triggered alert records. V1 persists and manages rules/triggers but does not implement a background rule engine.
  • 家属服务: family contacts, visit appointments, and family feedback. V1 does not add family login or external messaging.

Acceptance Criteria

  • Four collaboration nav pages render real data-backed workspaces instead of reserved module placeholders.
  • Each module supports list, create, edit, delete, and relevant status transitions through API routes.
  • New data is seeded for local/demo organizations without overwriting existing workspace data.
  • New permissions are registered and assigned to system roles consistently.
  • Mutation API routes require manage permissions, read API routes require read permissions, and cross-organization records cannot be mutated.
  • pnpm db:generate, pnpm type-check, and pnpm test pass.

Out of Scope

  • Family-member authentication, family-facing mobile/client portal, SMS/push delivery, and automatic alert-rule evaluation jobs.