sync/wework/2026-09-25-be-wework-department-edit-guest-rule-checklist-position.md · Xem trên GitHub

Wework: sửa/xoá phòng ban, role guest chỉ ở dự án khách hàng, checklist tự gán position

Đang mở normal feature
Module
wework
Từ
BE
Người raise
ThaiThanhLuan
Ngày tạo
2026-09-25
Refs
WEWORK-026, WEWORK-027, WEWORK-028
Bên nhận
FE pendingMobile n/a

Tóm tắt

Phòng ban sửa và xoá được; role dự án guest chỉ dùng cho dự án khách hàng; checklist item tự gán position khi client không gửi.

Chi tiết

  • WEWORK-027:
    • PATCH /departments/:id { name?, parentId? } (parentId: null = lên cấp cao nhất; đặt dưới chính nó/phòng ban con → 400 wework.department.parent_cycle).
    • DELETE /departments/:id → 204; còn phòng ban con hoặc dự án → 409 wework.department.in_use + details { children, projects }.
    • 2 action mới: wework:department:update, wework:department:delete (có sẵn trong WeworkFullAccess).
  • WEWORK-026: POST /projects/:id/members { role: "guest" } trên dự án internal → 400 wework.project_member.guest_internal_project. PATCH /projects/:id { kind: "internal" } khi còn guest → 409 wework.project.internal_with_guests.
  • WEWORK-028: POST /tasks/:id/checklist-items không gửi position → backend gán max + 1. Gửi position thì giữ nguyên (FE hiện tại không bị ảnh hưởng).

Contract (trước → sau)

Trước Sau
PATCH /departments/:id — mới, 200 Department
DELETE /departments/:id — mới, 204 / 409
Thêm guest vào dự án internal 201 400
Checklist item không có position position = 0 position = max + 1

Việc bên nhận cần làm

  • FE: sửa tên/đổi phòng ban cha, xoá phòng ban (hiện lỗi in_use theo details); ẩn theo action wework:department:update/delete.
  • FE: chỉ cho chọn role guest với dự án kind = client.
  • FE (tuỳ chọn): bỏ phần tự tính position trong TaskChecklist.tsx.

Cách kiểm tra

PATCH /departments/:id { name: "Mới" } → 200; DELETE phòng ban có con → 409 details.children = 1.

Thảo luận