feat(API): 복리후생비 상세 API 추가 (/welfare/detail)

- WelfareService: getDetail() 메서드 및 헬퍼 메서드 추가
  - getAccountBalance(), getMonthlyUsageTrend()
  - getCategoryDistribution(), getTransactions()
  - getQuarterlyStatus()
- WelfareController: detail() 액션 추가
- routes/api.php: /welfare/detail 라우트 등록
- Swagger: WelfareDetailResponse 및 관련 스키마 7개 추가

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-01-22 22:35:20 +09:00
parent 857192e8ac
commit 161b353b1c
4 changed files with 518 additions and 6 deletions

View File

@@ -21,9 +21,6 @@ public function __construct(
/**
* 복리후생비 현황 요약 조회
*
* @param Request $request
* @return JsonResponse
*/
public function summary(Request $request): JsonResponse
{
@@ -49,4 +46,30 @@ public function summary(Request $request): JsonResponse
);
}, __('message.fetched'));
}
}
/**
* 복리후생비 상세 조회 (모달용)
*/
public function detail(Request $request): JsonResponse
{
$calculationType = $request->query('calculation_type', 'fixed');
$fixedAmountPerMonth = $request->query('fixed_amount_per_month')
? (int) $request->query('fixed_amount_per_month')
: 200000;
$ratio = $request->query('ratio')
? (float) $request->query('ratio')
: 0.05;
$year = $request->query('year') ? (int) $request->query('year') : null;
$quarter = $request->query('quarter') ? (int) $request->query('quarter') : null;
return ApiResponse::handle(function () use ($calculationType, $fixedAmountPerMonth, $ratio, $year, $quarter) {
return $this->welfareService->getDetail(
$calculationType,
$fixedAmountPerMonth,
$ratio,
$year,
$quarter
);
}, __('message.fetched'));
}
}