feat: [approval] 결재관리 Phase 1 MVP 구현

- 모델 4개: Approval, ApprovalStep, ApprovalForm, ApprovalLine
- ApprovalService: 목록/CRUD/워크플로우(상신/승인/반려/회수) 비즈니스 로직
- ApprovalApiController: JSON API 엔드포인트 (기안함/결재함/완료함/참조함)
- ApprovalController: Blade 뷰 컨트롤러 (HX-Redirect 처리)
- 뷰 8개: drafts, pending, completed, references, create, edit, show
- partials: _status-badge, _step-progress, _approval-line-editor
- api.php/web.php 라우트 등록
This commit is contained in:
김보곤
2026-02-27 23:17:17 +09:00
parent bcb45c9362
commit 12c9ad620a
19 changed files with 2806 additions and 0 deletions

View File

@@ -150,6 +150,17 @@
Route::get('/{id}/edit', [NumberingRuleController::class, 'edit'])->name('edit');
});
// 결재관리 (Blade 화면)
Route::prefix('approval-mgmt')->name('approvals.')->group(function () {
Route::get('/drafts', [\App\Http\Controllers\ApprovalController::class, 'drafts'])->name('drafts');
Route::get('/create', [\App\Http\Controllers\ApprovalController::class, 'create'])->name('create');
Route::get('/pending', [\App\Http\Controllers\ApprovalController::class, 'pending'])->name('pending');
Route::get('/references', [\App\Http\Controllers\ApprovalController::class, 'references'])->name('references');
Route::get('/completed', [\App\Http\Controllers\ApprovalController::class, 'completed'])->name('completed');
Route::get('/{id}', [\App\Http\Controllers\ApprovalController::class, 'show'])->name('show');
Route::get('/{id}/edit', [\App\Http\Controllers\ApprovalController::class, 'edit'])->name('edit');
});
// 사용자 관리 (Blade 화면만)
Route::prefix('users')->name('users.')->group(function () {
Route::get('/', [UserController::class, 'index'])->name('index');