diff --git a/app/Http/Controllers/Api/V1/ChecklistTemplateController.php b/app/Http/Controllers/Api/V1/ChecklistTemplateController.php index a749df79..da1ce14d 100644 --- a/app/Http/Controllers/Api/V1/ChecklistTemplateController.php +++ b/app/Http/Controllers/Api/V1/ChecklistTemplateController.php @@ -34,6 +34,16 @@ public function update(SaveChecklistTemplateRequest $request, int $id) }, __('message.updated')); } + /** + * 항목 완료 토글 + */ + public function toggleItem(int $id, string $subItemId) + { + return ApiResponse::handle(function () use ($id, $subItemId) { + return $this->service->toggleItem($id, $subItemId); + }, __('message.updated')); + } + /** * 항목별 파일 목록 조회 */ diff --git a/app/Models/Qualitys/ChecklistTemplate.php b/app/Models/Qualitys/ChecklistTemplate.php index 32015937..4c4698f8 100644 --- a/app/Models/Qualitys/ChecklistTemplate.php +++ b/app/Models/Qualitys/ChecklistTemplate.php @@ -33,12 +33,12 @@ class ChecklistTemplate extends Model public function creator(): BelongsTo { - return $this->belongsTo(\App\Models\User::class, 'created_by'); + return $this->belongsTo(\App\Models\Members\User::class, 'created_by'); } public function updater(): BelongsTo { - return $this->belongsTo(\App\Models\User::class, 'updated_by'); + return $this->belongsTo(\App\Models\Members\User::class, 'updated_by'); } /** diff --git a/routes/api/v1/quality.php b/routes/api/v1/quality.php index b266e152..c09c5f1f 100644 --- a/routes/api/v1/quality.php +++ b/routes/api/v1/quality.php @@ -7,7 +7,6 @@ * - 실적신고 */ -use App\Http\Controllers\Api\V1\AuditChecklistController; use App\Http\Controllers\Api\V1\ChecklistTemplateController; use App\Http\Controllers\Api\V1\PerformanceReportController; use App\Http\Controllers\Api\V1\QmsLotAuditController; @@ -55,6 +54,7 @@ Route::prefix('quality/checklist-templates')->group(function () { Route::get('', [ChecklistTemplateController::class, 'show'])->name('v1.quality.checklist-templates.show'); Route::put('/{id}', [ChecklistTemplateController::class, 'update'])->whereNumber('id')->name('v1.quality.checklist-templates.update'); + Route::patch('/{id}/items/{subItemId}/toggle', [ChecklistTemplateController::class, 'toggleItem'])->whereNumber('id')->name('v1.quality.checklist-templates.toggle-item'); }); // QMS 점검표 문서 (파일) 관리 @@ -64,15 +64,4 @@ Route::delete('/{id}', [ChecklistTemplateController::class, 'deleteDocument'])->whereNumber('id')->name('v1.quality.qms-documents.destroy'); }); -// QMS 기준/매뉴얼 심사 (1일차) -Route::prefix('qms')->group(function () { - Route::get('/checklists', [AuditChecklistController::class, 'index'])->name('v1.qms.checklists.index'); - Route::post('/checklists', [AuditChecklistController::class, 'store'])->name('v1.qms.checklists.store'); - Route::get('/checklists/{id}', [AuditChecklistController::class, 'show'])->whereNumber('id')->name('v1.qms.checklists.show'); - Route::put('/checklists/{id}', [AuditChecklistController::class, 'update'])->whereNumber('id')->name('v1.qms.checklists.update'); - Route::patch('/checklists/{id}/complete', [AuditChecklistController::class, 'complete'])->whereNumber('id')->name('v1.qms.checklists.complete'); - Route::patch('/checklist-items/{id}/toggle', [AuditChecklistController::class, 'toggleItem'])->whereNumber('id')->name('v1.qms.checklist-items.toggle'); - Route::get('/checklist-items/{id}/documents', [AuditChecklistController::class, 'itemDocuments'])->whereNumber('id')->name('v1.qms.checklist-items.documents'); - Route::post('/checklist-items/{id}/documents', [AuditChecklistController::class, 'attachDocument'])->whereNumber('id')->name('v1.qms.checklist-items.documents.attach'); - Route::delete('/checklist-items/{id}/documents/{docId}', [AuditChecklistController::class, 'detachDocument'])->whereNumber('id')->whereNumber('docId')->name('v1.qms.checklist-items.documents.detach'); -}); +// QMS 기준/매뉴얼 심사 (1일차) — checklist_templates로 통합됨, AuditChecklistController 제거