feat: Phase 6.2 팝업관리 API 구현
- popups 테이블 마이그레이션 생성 - Popup 모델 (BelongsToTenant, SoftDeletes) - PopupService CRUD 구현 - FormRequest 검증 (Store/Update) - PopupController 6개 엔드포인트 - Swagger 문서 (PopupApi.php) - PROJECT_DEVELOPMENT_POLICY.md 정책 준수
This commit is contained in:
@@ -1846,4 +1846,64 @@ ### 주요 작업
|
||||
- 계층 구조 및 필드 관리 테스트
|
||||
- Validation 로직 개선
|
||||
|
||||
---
|
||||
---
|
||||
## 2025-12-19 (목) - Phase 6.2 팝업관리 API 구현
|
||||
|
||||
### 주요 작업
|
||||
- Phase 6.2 팝업관리 기능 구현 완료
|
||||
- PROJECT_DEVELOPMENT_POLICY.md 정책 준수 (string 타입, options JSON 가변 컬럼)
|
||||
|
||||
### 추가된 파일
|
||||
|
||||
**마이그레이션:**
|
||||
- `database/migrations/2025_12_19_170001_create_popups_table.php`
|
||||
|
||||
**모델:**
|
||||
- `app/Models/Popups/Popup.php`
|
||||
- BelongsToTenant, SoftDeletes 적용
|
||||
- target_type: all(전사), department(부서)
|
||||
- status: active(사용), inactive(사용안함)
|
||||
- 스코프: active(), status(), targetType(), forUser()
|
||||
- 관계: department(), creator(), updater()
|
||||
|
||||
**서비스:**
|
||||
- `app/Services/PopupService.php`
|
||||
- index(): 관리자용 목록 (페이지네이션)
|
||||
- getActivePopups(): 사용자용 활성 팝업
|
||||
- show(): 상세 조회
|
||||
- store(): 등록
|
||||
- update(): 수정
|
||||
- destroy(): 삭제 (Soft Delete)
|
||||
|
||||
**FormRequest:**
|
||||
- `app/Http/Requests/V1/Popup/StorePopupRequest.php`
|
||||
- `app/Http/Requests/V1/Popup/UpdatePopupRequest.php`
|
||||
|
||||
**컨트롤러:**
|
||||
- `app/Http/Controllers/Api/V1/PopupController.php`
|
||||
|
||||
**Swagger:**
|
||||
- `app/Swagger/v1/PopupApi.php`
|
||||
|
||||
### 수정된 파일
|
||||
- `routes/api.php`: Popup 라우트 추가 (6개 엔드포인트)
|
||||
|
||||
### API 엔드포인트 (6개)
|
||||
| Method | Path | Description |
|
||||
|--------|------|-------------|
|
||||
| GET | /api/v1/popups | 팝업 목록 (관리자용) |
|
||||
| POST | /api/v1/popups | 팝업 등록 |
|
||||
| GET | /api/v1/popups/active | 활성 팝업 (사용자용) |
|
||||
| GET | /api/v1/popups/{id} | 팝업 상세 |
|
||||
| PUT | /api/v1/popups/{id} | 팝업 수정 |
|
||||
| DELETE | /api/v1/popups/{id} | 팝업 삭제 |
|
||||
|
||||
### 정책 준수 사항
|
||||
- ✅ 기존 테이블 확인 후 신규 생성
|
||||
- ✅ string 타입 사용 (enum 대신)
|
||||
- ✅ options JSON 가변 컬럼
|
||||
- ✅ BelongsToTenant, SoftDeletes 적용
|
||||
- ✅ Service-First 아키텍처
|
||||
- ✅ FormRequest 검증
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user