diff --git a/CURRENT_WORKS.md b/CURRENT_WORKS.md index c124a57..3483061 100644 --- a/CURRENT_WORKS.md +++ b/CURRENT_WORKS.md @@ -1,5 +1,91 @@ # SAM API 작업 현황 +## 2025-11-27 (수) - ItemMaster API group_id(계층번호) 추가 및 Swagger 보완 + +### 작업 목표 +- FormRequest에 누락된 `group_id` 필드 추가 +- Swagger 스키마에 `group_id` description="계층번호" 추가 +- API 문서 정확도 개선 + +### 배경 +- `POST /api/v1/item-master/pages/{pageId}/sections` Swagger 문서 점검 중 `group_id` 누락 발견 +- Service에서 `$data['group_id'] ?? 1`로 사용하지만 FormRequest와 Swagger에 미정의 +- `group_id`는 "계층번호"로 통일하여 주석 및 description 작성 + +### 수정된 파일 (4개) + +**FormRequest (group_id 필드 추가)**: +- `app/Http/Requests/ItemMaster/ItemSectionStoreRequest.php` +- `app/Http/Requests/ItemMaster/ItemFieldStoreRequest.php` +- `app/Http/Requests/ItemMaster/ItemBomItemStoreRequest.php` + +**Swagger**: +- `app/Swagger/v1/ItemMasterApi.php` + +### Swagger 스키마 업데이트 상세 + +**모델 스키마 (3개)** - `description="계층번호"` 추가: +- `ItemSection` +- `ItemField` +- `ItemBomItem` + +**Request 스키마 (6개)** - `group_id` 추가 또는 description 추가: +- `ItemSectionStoreRequest` - group_id 신규 추가 +- `ItemFieldStoreRequest` - group_id 신규 추가 +- `ItemBomItemStoreRequest` - group_id 신규 추가 +- `IndependentSectionStoreRequest` - description 추가 +- `IndependentFieldStoreRequest` - description 추가 +- `IndependentBomItemStoreRequest` - description 추가 + +### 12개 EntityRelationship 엔드포인트 + +`EntityRelationshipApi.php`에 이미 문서화 완료 확인: +- POST/DELETE `/pages/{pageId}/link-section`, `/unlink-section/{sectionId}` +- POST/DELETE `/pages/{pageId}/link-field`, `/unlink-field/{fieldId}` +- GET `/pages/{pageId}/relationships`, `/structure` +- POST/DELETE `/sections/{sectionId}/link-field`, `/unlink-field/{fieldId}` +- POST/DELETE `/sections/{sectionId}/link-bom`, `/unlink-bom/{bomId}` +- GET `/sections/{sectionId}/relationships` +- POST `/relationships/reorder` + +### 검증 결과 +- Pint 코드 포맷팅: ✅ 통과 +- Swagger 문서 생성: ✅ 완료 + +### Git 커밋 +``` +commit 4f78eed +feat: ItemMaster API group_id(계층번호) 추가 및 Swagger 보완 +``` + +--- + +## 2025-11-26 (화) - AccessService permission_overrides 테이블 사용으로 수정 + +### 주요 작업 +- API AccessService가 존재하지 않는 테이블(user_permission_overrides, department_permissions)을 참조하던 문제 수정 +- 실제 DB의 `permission_overrides` 테이블을 사용하도록 수정 + +### 수정된 파일: +- `app/Services/Authz/AccessService.php` + - `hasUserOverride()`: `user_permission_overrides` → `permission_overrides` (model_type='App\Models\Members\User') + - `departmentAllows()`: `department_permissions` → `permission_overrides` (model_type='App\Models\Tenants\Department') + - 필드명 변경: `is_allowed` → `effect`, `user_id` → `model_id` + +### 기술 상세: +**permission_overrides 테이블 구조:** +- `model_type`: 폴리모픽 타입 (User, Department) +- `model_id`: 대상 ID +- `permission_id`: 권한 ID +- `effect`: 0=DENY, 1=ALLOW +- `effective_from`, `effective_to`: 유효 기간 + +### 코드 품질: +- ✅ PHP 문법 검사 통과 +- ✅ Pint 포맷팅 통과 + +--- + ## 2025-11-26 (화) - Item Master 독립 엔티티 API 추가 ✅ 완료 ### 작업 목표