feat: [QMS] 점검표 토글 API 추가 + 레거시 AuditChecklist 라우트 제거

- ChecklistTemplateController.toggleItem() 추가 (PATCH /{id}/items/{subItemId}/toggle)
- ChecklistTemplate 모델 User 클래스 경로 수정 (Members\User)
- AuditChecklistController 라우트 제거 (checklist_templates로 통합)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-12 14:00:43 +09:00
parent 2d32faa9b5
commit f3849808d5
3 changed files with 14 additions and 15 deletions

View File

@@ -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'));
}
/**
* 항목별 파일 목록 조회
*/

View File

@@ -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');
}
/**

View File

@@ -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 제거