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 → 400wework.department.parent_cycle).DELETE /departments/:id→ 204; còn phòng ban con hoặc dự án → 409wework.department.in_use+details { children, projects }.- 2 action mới:
wework:department:update,wework:department:delete(có sẵn trongWeworkFullAccess).
- WEWORK-026:
POST /projects/:id/members { role: "guest" }trên dự áninternal→ 400wework.project_member.guest_internal_project.PATCH /projects/:id { kind: "internal" }khi còn guest → 409wework.project.internal_with_guests. - WEWORK-028:
POST /tasks/:id/checklist-itemskhông gửiposition→ backend gán max + 1. Gửipositionthì 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_usetheodetails); ẩn theo actionwework:department:update/delete. - FE: chỉ cho chọn role
guestvới dự ánkind = client. - FE (tuỳ chọn): bỏ phần tự tính
positiontrongTaskChecklist.tsx.
Cách kiểm tra
PATCH /departments/:id { name: "Mới" } → 200; DELETE phòng ban có con → 409 details.children = 1.