BE-PR-006: Add Essential CRUD API under Proposals
- New router: /projects/{project_id}/proposals/{proposal_id}/essentials
- GET (list) - list all essentials under a proposal
- POST (create) - create essential with auto-generated EssentialCode
- GET /{id} - get single essential by id or essential_code
- PATCH /{id} - update essential (title, type, description)
- DELETE /{id} - delete essential
- All mutations restricted to open proposals only
- Permission: creator, project owner, or global admin
- Registered essentials router in main.py
- Updated GET /proposals/{id} to return ProposalDetailResponse with
embedded essentials list
- Activity logging on all CRUD operations
This commit is contained in:
@@ -58,11 +58,11 @@
|
||||
- [x] 新增 response schema
|
||||
- [x] 新增 Proposal detail 中嵌套 Essential 的返回结构
|
||||
|
||||
- [ ] BE-PR-006:新增 Proposal 下 Essential CRUD API(backend only)
|
||||
- [ ] 实现创建 Essential
|
||||
- [ ] 实现编辑 Essential
|
||||
- [ ] 实现删除 Essential
|
||||
- [ ] 实现 Proposal 详情返回 Essential 列表
|
||||
- [x] BE-PR-006:新增 Proposal 下 Essential CRUD API(backend only)
|
||||
- [x] 实现创建 Essential
|
||||
- [x] 实现编辑 Essential
|
||||
- [x] 实现删除 Essential
|
||||
- [x] 实现 Proposal 详情返回 Essential 列表
|
||||
|
||||
- [ ] BE-PR-007:重构 Proposal Accept 逻辑(backend only)
|
||||
- [ ] 移除"accept 后生成单个 `story/feature` task"的旧逻辑
|
||||
|
||||
Reference in New Issue
Block a user