feat: [equipment] 설비관리 모듈 구현

- 모델 6개 (Equipment, InspectionTemplate, Inspection, InspectionDetail, Repair, Process)
- 서비스 3개 (Equipment, Inspection, Repair)
- API 컨트롤러 3개 + FormRequest 4개
- Blade 컨트롤러 + 라우트 등록
- 뷰: 대시보드, 등록대장(CRUD), 일상점검표(캘린더 그리드), 수리이력
This commit is contained in:
김보곤
2026-02-25 19:39:59 +09:00
parent f0178d8928
commit 11a7f89216
31 changed files with 2998 additions and 0 deletions

View File

@@ -965,6 +965,38 @@
| Google STT + Claude API를 사용한 회의록 생성
|
*/
/*
|--------------------------------------------------------------------------
| 설비관리 API (Equipment Management)
|--------------------------------------------------------------------------
*/
Route::middleware(['web', 'auth', 'hq.member'])->prefix('admin/equipment')->name('api.admin.equipment.')->group(function () {
// 설비 CRUD
Route::get('/', [\App\Http\Controllers\Api\Admin\EquipmentController::class, 'index'])->name('index');
Route::post('/', [\App\Http\Controllers\Api\Admin\EquipmentController::class, 'store'])->name('store');
Route::get('/{id}', [\App\Http\Controllers\Api\Admin\EquipmentController::class, 'show'])->whereNumber('id')->name('show');
Route::put('/{id}', [\App\Http\Controllers\Api\Admin\EquipmentController::class, 'update'])->whereNumber('id')->name('update');
Route::delete('/{id}', [\App\Http\Controllers\Api\Admin\EquipmentController::class, 'destroy'])->whereNumber('id')->name('destroy');
Route::post('/{id}/restore', [\App\Http\Controllers\Api\Admin\EquipmentController::class, 'restore'])->whereNumber('id')->name('restore');
// 점검 템플릿
Route::get('/{id}/templates', [\App\Http\Controllers\Api\Admin\EquipmentController::class, 'templates'])->whereNumber('id')->name('templates');
Route::post('/{id}/templates', [\App\Http\Controllers\Api\Admin\EquipmentInspectionController::class, 'storeTemplate'])->whereNumber('id')->name('templates.store');
Route::put('/templates/{templateId}', [\App\Http\Controllers\Api\Admin\EquipmentInspectionController::class, 'updateTemplate'])->whereNumber('templateId')->name('templates.update');
Route::delete('/templates/{templateId}', [\App\Http\Controllers\Api\Admin\EquipmentInspectionController::class, 'deleteTemplate'])->whereNumber('templateId')->name('templates.destroy');
// 점검 기록
Route::get('/inspections', [\App\Http\Controllers\Api\Admin\EquipmentInspectionController::class, 'index'])->name('inspections.index');
Route::patch('/inspections/detail', [\App\Http\Controllers\Api\Admin\EquipmentInspectionController::class, 'toggleDetail'])->name('inspections.toggle');
Route::patch('/inspections/notes', [\App\Http\Controllers\Api\Admin\EquipmentInspectionController::class, 'updateNotes'])->name('inspections.notes');
// 수리이력
Route::get('/repairs', [\App\Http\Controllers\Api\Admin\EquipmentRepairController::class, 'index'])->name('repairs.index');
Route::post('/repairs', [\App\Http\Controllers\Api\Admin\EquipmentRepairController::class, 'store'])->name('repairs.store');
Route::put('/repairs/{id}', [\App\Http\Controllers\Api\Admin\EquipmentRepairController::class, 'update'])->whereNumber('id')->name('repairs.update');
Route::delete('/repairs/{id}', [\App\Http\Controllers\Api\Admin\EquipmentRepairController::class, 'destroy'])->whereNumber('id')->name('repairs.destroy');
});
Route::middleware(['web', 'auth'])->prefix('meeting-logs')->name('api.admin.meeting-logs.')->group(function () {
// 목록 조회 (HTMX 지원)
Route::get('/', [MeetingLogController::class, 'index'])->name('index');