Skip to content

[Backend] 邀請資料模型與驗證規則 #2

@tedliu6

Description

@tedliu6

Context

Part of #1 — Workspace 邀請功能的後端核心:資料模型與全部驗證規則。此任務不含 API endpoint 與 email 寄送。

Scope

  • invitations 資料模型(email、status、建立時間、邀請者)
  • 建立邀請的驗證邏輯:email 格式、重複成員、重複 pending 邀請、角色權限
  • 7 天逾期判定(純函式,不依賴排程)
  • 完整單元測試

Out of scope

  • API endpoint(HTTP 層)
  • 邀請 email 寄送(v0.2.0)
  • 前端 UI

Technical approach

純函式模組(src/backend/invitations.js),不碰 I/O — 驗證規則與逾期判定都是 deterministic,用 node:test 直接測。資料持久化等 API 層任務再決定。

Acceptance Criteria

  • createInvitation 成功時回傳 pending 狀態的邀請物件
  • email 格式不合法 → INVALID_EMAIL
  • email 已是成員 → ALREADY_MEMBER
  • email 已有 pending 邀請 → ALREADY_INVITED
  • 邀請者角色非 admin → FORBIDDEN
  • 建立後超過 7 天 → isExpired 回傳 true(邊界:剛好 7 天不算逾期)
  • 上述每條都有對應單元測試,node --test 全綠

Risk

Low — 純函式新增,不動既有行為、無 migration。

Area

Backend

Dependencies

無(本 feature 的第一張任務,#3 文件任務依賴本任務的 API 形狀)

Metadata

Metadata

Assignees

Labels

area: backend服務端邏輯priority: p1本迭代必須完成type: task工程子任務(通常是 sub-issue)

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions