feat: 휴가 관리 API 구현 (Phase 1)

- leaves, leave_balances 테이블 마이그레이션 추가
- Leave, LeaveBalance 모델 구현 (BelongsToTenant, SoftDeletes)
- LeaveService 서비스 구현 (CRUD, 승인/반려/취소, 잔여일수 관리)
- LeaveController 및 FormRequest 5개 생성
- API 엔드포인트 11개 등록 (/v1/leaves/*)
- Swagger 문서 (LeaveApi.php) 작성
- i18n 메시지 키 추가 (message.leave.*, error.leave.*)
This commit is contained in:
2025-12-17 20:13:48 +09:00
parent cac409e7dc
commit e81e5d7084
15 changed files with 1646 additions and 0 deletions

View File

@@ -152,4 +152,15 @@
'formula_parentheses_mismatch' => '괄호가 올바르게 닫히지 않았습니다.',
'formula_unsupported_function' => '지원하지 않는 함수입니다: :function',
'formula_calculation_error' => '계산 오류: :expression',
// 휴가 관리 관련
'leave' => [
'not_found' => '휴가 정보를 찾을 수 없습니다.',
'not_editable' => '대기 상태의 휴가만 수정할 수 있습니다.',
'not_approvable' => '대기 상태의 휴가만 승인/반려할 수 있습니다.',
'not_cancellable' => '승인된 휴가만 취소할 수 있습니다.',
'insufficient_balance' => '잔여 휴가일수가 부족합니다.',
'overlapping' => '해당 기간에 이미 신청된 휴가가 있습니다.',
'balance_not_found' => '휴가 잔여일수 정보를 찾을 수 없습니다.',
],
];

View File

@@ -196,4 +196,17 @@
],
'quote_email_sent' => '견적서가 이메일로 발송되었습니다.',
'quote_kakao_sent' => '견적서가 카카오톡으로 발송되었습니다.',
// 휴가 관리
'leave' => [
'fetched' => '휴가를 조회했습니다.',
'created' => '휴가가 신청되었습니다.',
'updated' => '휴가가 수정되었습니다.',
'deleted' => '휴가가 삭제되었습니다.',
'approved' => '휴가가 승인되었습니다.',
'rejected' => '휴가가 반려되었습니다.',
'cancelled' => '휴가가 취소되었습니다.',
'balance_fetched' => '잔여 휴가를 조회했습니다.',
'balance_updated' => '휴가 일수가 설정되었습니다.',
],
];