feat: [leave] 휴가관리 Phase 1 구현

- Leave, LeavePolicy, LeaveGrant 모델 생성
- LeaveBalance 헬퍼 메서드 추가 (useLeave, restoreLeave, canUse)
- LeaveService 핵심 로직 (신청, 승인, 반려, 취소, 잔여연차, 통계)
- API 컨트롤러 (목록, 등록, 승인/반려/취소, 잔여연차, 통계, CSV 내보내기)
- 뷰 컨트롤러 + 라우트 등록 (web, api)
- Blade 뷰 (index + 3개 탭 partials: table, balance, stats)
This commit is contained in:
김보곤
2026-02-26 22:34:31 +09:00
parent b17979f412
commit 684bba105f
13 changed files with 1981 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
<?php
namespace App\Http\Controllers\HR;
use App\Http\Controllers\Controller;
use App\Models\HR\Leave;
use App\Services\HR\LeaveService;
use Illuminate\Contracts\View\View;
use Illuminate\Http\Response;
class LeaveController extends Controller
{
public function __construct(
private LeaveService $leaveService
) {}
public function index(): View|Response
{
$employees = $this->leaveService->getActiveEmployees();
$departments = $this->leaveService->getDepartments();
$typeMap = Leave::TYPE_MAP;
$statusMap = Leave::STATUS_MAP;
return view('hr.leaves.index', [
'employees' => $employees,
'departments' => $departments,
'typeMap' => $typeMap,
'statusMap' => $statusMap,
]);
}
}