docs(menu): 사이드바 권한 동기화 지침 추가

- frontend_backend_alignment_report.md에 사이드바/그룹 권한 TODO와 테스트 계획을 정리
- stock_approval_system_api_v4.md에 메뉴/그룹 권한 API 규칙과 응답 예시를 추가
- stock_approval_system_spec_v4.md에 공식 메뉴 표와 기본 그룹 권한 케이스를 기재
This commit is contained in:
JiWoong Sul
2025-11-12 00:27:17 +09:00
parent eaac3c23ae
commit f767c44573
3 changed files with 84 additions and 0 deletions

View File

@@ -514,6 +514,46 @@
---
### 3.9 메뉴 & 그룹 권한
- **목적:** 프런트 사이드바/권한 편집 화면에서 동일한 메뉴 목록을 재사용하기 위한 단일 소스.
- **엔드포인트:** `GET /menus`, `POST /menus`, `PATCH /menus/{id}`, `DELETE /menus/{id}`, `GET /group-menu-permissions`.
- **정렬 규칙:** `parent_menu_id ASC`, `display_order ASC`.
- **필수 필드:** `menu_code`, `menu_name`, `parent_menu_id`, `route_path`, `display_order`.
- **삭제 정책:** UI에서 제거된 메뉴는 `is_deleted=true`로만 남겨두며 기본 응답에서는 제외한다. 필요 시 `include_deleted=true`로 조회해 비활성 메뉴를 회색 처리한다.
`GET /menus?active=true&include=parent&order=asc`
```json
{
"items": [
{
"id": 10,
"menu_code": "inventory.receipts",
"menu_name": "입고",
"parent_menu_id": 2,
"route_path": "/inventory/receipts",
"display_order": 10,
"note": "입고 전표/입고 처리",
"is_active": true,
"created_at": "2025-11-11T12:00:00Z",
"updated_at": "2025-11-11T12:00:00Z",
"parent": {
"id": 2,
"menu_code": "inventory",
"menu_name": "재고/입출고",
"route_path": "/inventory"
}
}
],
"page": 1,
"page_size": 50,
"total": 18
}
```
권한 편집 시 `group_menu_permissions``menu` 객체는 항상 `menu_code`, `menu_name`, `route_path`, `is_deleted`를 포함하며, UI는 이 값을 그대로 드롭다운/트리 항목으로 사용해야 한다. 메뉴 추가/삭제는 먼저 `menus`에 반영한 뒤 각 그룹 권한을 업데이트해야 하며, `menu_code`는 프런트 라우트 키와 반드시 동일해야 한다.
---
## 4. 트랜잭션/재고 API
리소스: `/stock-transactions`, 보조 리소스: `/transaction-lines`, `/transaction-customers`