From f3849808d579afeb69a73e2701e995ba04c75084 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B6=8C=ED=98=81=EC=84=B1?= Date: Thu, 12 Mar 2026 14:00:43 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20[QMS]=20=EC=A0=90=EA=B2=80=ED=91=9C=20?= =?UTF-8?q?=ED=86=A0=EA=B8=80=20API=20=EC=B6=94=EA=B0=80=20+=20=EB=A0=88?= =?UTF-8?q?=EA=B1=B0=EC=8B=9C=20AuditChecklist=20=EB=9D=BC=EC=9A=B0?= =?UTF-8?q?=ED=8A=B8=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ChecklistTemplateController.toggleItem() 추가 (PATCH /{id}/items/{subItemId}/toggle) - ChecklistTemplate 모델 User 클래스 경로 수정 (Members\User) - AuditChecklistController 라우트 제거 (checklist_templates로 통합) Co-Authored-By: Claude Opus 4.6 --- .../Api/V1/ChecklistTemplateController.php | 10 ++++++++++ app/Models/Qualitys/ChecklistTemplate.php | 4 ++-- routes/api/v1/quality.php | 15 ++------------- 3 files changed, 14 insertions(+), 15 deletions(-) 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 제거