diff --git a/changes/20260122_loan_dashboard_api.md b/changes/20260122_loan_dashboard_api.md new file mode 100644 index 0000000..9346a1c --- /dev/null +++ b/changes/20260122_loan_dashboard_api.md @@ -0,0 +1,83 @@ +# 변경 내용 요약 + +**날짜:** 2026-01-22 +**작업자:** Claude Code +**계획 문서:** docs/plans/card-management-section-plan.md +**Phase:** 1.2 가지급금 대시보드 API 개발 + +## 📋 변경 개요 +CEO 대시보드 카드/가지급금 관리 섹션(cm2)의 모달 팝업용 가지급금 대시보드 API 엔드포인트 신규 추가. +기존 summary 및 calculateInterest 로직을 활용하여 요약 데이터(미정산 총액, 인정이자, 미정산 건수)와 최근 가지급금 목록을 제공. + +## 📁 수정된 파일 +- `api/app/Services/LoanService.php` - dashboard() 메서드 추가 +- `api/app/Http/Controllers/Api/V1/LoanController.php` - dashboard() 액션 추가 +- `api/routes/api.php` - /dashboard 라우트 등록 +- `api/app/Swagger/v1/LoanApi.php` - 대시보드 스키마 및 엔드포인트 문서화 + +## 🔧 상세 변경 사항 + +### 1. LoanService.php +**신규 메서드:** +- `dashboard()` - 대시보드 전체 데이터 반환 + - 기존 `summary()` 호출하여 미정산 총액, 건수 획득 + - 기존 `calculateInterest()` 호출하여 인정이자 계산 + - 가지급금 목록 (최근 10건, 미정산 우선 정렬) + +**응답 구조:** +```php +[ + 'summary' => [ + 'total_outstanding' => float, // 미정산 가지급금 총액 + 'recognized_interest' => float, // 인정이자 (연 4.6%) + 'outstanding_count' => int, // 미정산 건수 + ], + 'loans' => [ + [ + 'id' => int, + 'loan_date' => string, // Y-m-d + 'user_name' => string, + 'category' => string, // 카드/계좌 + 'amount' => float, + 'status' => string, // outstanding/settled/partial + 'content' => string, // 목적 + ], + // ... 최대 10건 + ], +] +``` + +### 2. LoanController.php +**신규 액션:** +```php +public function dashboard(): JsonResponse +``` + +### 3. api/routes/api.php +**신규 라우트:** +```php +Route::get('/dashboard', [LoanController::class, 'dashboard']) + ->name('v1.loans.dashboard'); +``` + +### 4. LoanApi.php (Swagger) +**신규 스키마:** +- `LoanDashboard` - 대시보드 응답 전체 구조 + +**신규 엔드포인트:** +- `GET /api/v1/loans/dashboard` + +## ✅ 테스트 체크리스트 +- [x] Pint 코드 스타일 검증 통과 +- [x] 라우트 등록 확인 (php artisan route:list) +- [x] Swagger 문서 생성 완료 +- [ ] API 호출 테스트 (Swagger UI) +- [ ] 프론트엔드 연동 테스트 + +## ⚠️ 배포 시 주의사항 +특이사항 없음 (DB 스키마 변경 없음) + +## 🔗 관련 문서 +- 계획 문서: `docs/plans/card-management-section-plan.md` +- Phase 1.1 변경: `docs/changes/20260122_card_transaction_dashboard_api.md` +- 기존 API 문서: `api/app/Swagger/v1/LoanApi.php` \ No newline at end of file diff --git a/plans/card-management-section-plan.md b/plans/card-management-section-plan.md index cb32802..1b85009 100644 --- a/plans/card-management-section-plan.md +++ b/plans/card-management-section-plan.md @@ -11,9 +11,9 @@ | 항목 | 내용 | |------|------| -| **마지막 완료 작업** | Phase 1.1 카드 거래 대시보드 API 개발 완료 | -| **다음 작업** | Phase 1.2 가지급금 대시보드 API 개발 | -| **진행률** | 1/12 (8%) | +| **마지막 완료 작업** | Phase 1.2 가지급금 대시보드 API 개발 완료 | +| **다음 작업** | Phase 1.3 세금 시뮬레이션 API 개발 | +| **진행률** | 2/12 (17%) | | **마지막 업데이트** | 2026-01-22 | --- @@ -133,7 +133,7 @@ CEO 대시보드의 카드/가지급금 관리 섹션은 4개의 카드로 구 | # | 작업 항목 | 상태 | 비고 | |---|----------|:----:|------| | 1.1 | 카드 거래 대시보드 API 개발 | ✅ | 월별 추이, 사용자별 비율 | -| 1.2 | 가지급금 대시보드 API 개발 | ⏳ | 대시보드 요약 + 목록 | +| 1.2 | 가지급금 대시보드 API 개발 | ✅ | 대시보드 요약 + 목록 | | 1.3 | 세금 시뮬레이션 API 개발 | ⏳ | 법인세/종합소득세 비교 | ### 3.2 Phase 2: 프론트엔드 타입 및 API 연동 @@ -348,8 +348,8 @@ interface UseCardManagementModalsReturn { | # | 항목 | 변경 내용 | 영향 범위 | 상태 | |---|------|----------|----------|------| -| 1 | 카드 거래 대시보드 API | 신규 엔드포인트 추가 | API 프로젝트 | ⏳ | -| 2 | 가지급금 대시보드 API | 신규 엔드포인트 추가 | API 프로젝트 | ⏳ | +| 1 | 카드 거래 대시보드 API | 신규 엔드포인트 추가 | API 프로젝트 | ✅ | +| 2 | 가지급금 대시보드 API | 신규 엔드포인트 추가 | API 프로젝트 | ✅ | | 3 | 세금 시뮬레이션 API | 신규 엔드포인트 추가 | API 프로젝트 | ⏳ | --- @@ -358,6 +358,8 @@ interface UseCardManagementModalsReturn { | 날짜 | 항목 | 변경 내용 | 파일 | 승인 | |------|------|----------|------|------| +| 2026-01-22 | Phase 1.2 | 가지급금 대시보드 API 개발 완료 | LoanService, LoanController, LoanApi | ✅ | +| 2026-01-22 | Phase 1.1 | 카드 거래 대시보드 API 개발 완료 | CardTransactionService, CardTransactionController, CardTransactionApi | ✅ | | 2026-01-22 | - | 문서 초안 작성 | - | - | ---