diff --git a/CURRENT_WORKS.md b/CURRENT_WORKS.md index 8932642..f54d471 100644 --- a/CURRENT_WORKS.md +++ b/CURRENT_WORKS.md @@ -1,3 +1,95 @@ +## 2025-11-20 (수) - ItemMaster API Swagger 문서 작성 + +### 주요 작업 +- ItemMaster 전체 API (32개 엔드포인트) Swagger 문서화 완료 +- OpenAPI 3.0 표준 준수 +- 기존 SAM Swagger 패턴 따름 + +### 추가된 파일 + +1. **app/Swagger/v1/ItemMasterApi.php** (~900 lines) + - Tag 정의: ItemMaster 리소스 + - Model Schemas (8개): ItemPage, ItemSection, ItemField, ItemBomItem, SectionTemplate, ItemMasterField, CustomTab, UnitOption + - Request Schemas (12개): 각 리소스별 Store/Update + ReorderRequest + - Response Schema: ItemMasterInitResponse (nested arrays) + - 32개 엔드포인트 전체 문서화 + +### Swagger 문서 구조 + +**Model Schemas**: +- ItemPage (id, page_name, item_type, sections[]) +- ItemSection (id, section_name, item_type, order_no, fields[]) +- ItemField (id, field_key, label, type, options[], validation_rules) +- ItemBomItem (id, item_page_id, material_code, part_code, quantity, waste_rate) +- SectionTemplate (id, name, description, fields[]) +- ItemMasterField (id, field_key, label, type, category) +- CustomTab (id, label, icon, is_default, order_no) +- UnitOption (id, label, value) + +**Request Schemas**: +- Store/Update 요청 스키마 (각 리소스별) +- ReorderRequest (items 배열) + +**Endpoint Documentation** (32개): +- Init (1): 초기 데이터 로드 +- ItemPage (5): CRUD + reorder +- ItemSection (6): CRUD + reorder + restore +- ItemField (5): CRUD + reorder +- ItemBomItem (5): CRUD + reorder +- SectionTemplate (5): CRUD + reorder +- ItemMasterField (3): index, store, delete +- CustomTab (5): CRUD + reorder +- UnitOption (3): index, store, delete + +### 작업 내용 + +**1단계: 분석** +- 기존 CategoryApi.php 구조 분석 +- ItemMaster 모델 구조 파악 (8개 모델) +- 엔드포인트 전체 목록 정리 (32개) + +**2단계: Swagger 파일 생성** +- Model Schema 정의 (nullable, type, example 포함) +- Request/Response Schema 정의 +- 전체 엔드포인트 @OA annotation 작성 +- Security 설정 (ApiKeyAuth + BearerAuth) + +**3단계: 검증** +- `php artisan l5-swagger:generate` 실행 성공 +- `./vendor/bin/pint` 코드 포맷팅 (1개 스타일 이슈 수정) +- 라우트 목록 확인 (32개 엔드포인트 정상) + +### 검증 결과 + +**Swagger 생성**: +```bash +php artisan l5-swagger:generate +# 결과: Regenerating docs v1 성공 +``` + +**코드 포맷팅**: +```bash +./vendor/bin/pint app/Swagger/v1/ItemMasterApi.php +# 결과: 1 file, 1 style issue fixed +``` + +**라우트 확인**: +```bash +php artisan route:list --path=item-master | grep -c "item-master" +# 결과: 32개 엔드포인트 +``` + +### 다음 단계 + +**남은 작업**: +- API 테스트 케이스 작성 +- Frontend 연동 (React ItemMaster 화면) + +### Git 커밋 +- 커밋 예정: Swagger 문서 추가 + +--- + ## 2025-11-20 (수) - ItemMaster Phase 3 API 구현 (부가 기능) ### 주요 작업 diff --git a/app/Swagger/v1/ItemMasterApi.php b/app/Swagger/v1/ItemMasterApi.php new file mode 100644 index 0000000..f44974f --- /dev/null +++ b/app/Swagger/v1/ItemMasterApi.php @@ -0,0 +1,1064 @@ +