feat: 공정 단계(ProcessStep) CRUD API 구현
- process_steps 테이블 마이그레이션 생성 (step_code, sort_order, boolean 플래그 등)
- ProcessStep 모델 생성 (child entity 패턴, HasFactory만 사용)
- ProcessStepService: CRUD + reorder + STP-001 자동채번
- ProcessStepController: DI + ApiResponse::handle 패턴
- FormRequest 3개: Store, Update, Reorder
- Process 모델에 steps() HasMany 관계 추가
- ProcessService eager-load에 steps 추가 (5곳)
- Nested routes: /processes/{processId}/steps
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
use App\Http\Controllers\Api\V1\WorkOrderController;
|
||||
use App\Http\Controllers\Api\V1\WorkResultController;
|
||||
use App\Http\Controllers\V1\ProcessController;
|
||||
use App\Http\Controllers\V1\ProcessStepController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
// Process API (공정 관리)
|
||||
@@ -26,6 +27,16 @@
|
||||
Route::put('/{id}', [ProcessController::class, 'update'])->whereNumber('id')->name('v1.processes.update');
|
||||
Route::delete('/{id}', [ProcessController::class, 'destroy'])->whereNumber('id')->name('v1.processes.destroy');
|
||||
Route::patch('/{id}/toggle', [ProcessController::class, 'toggleActive'])->whereNumber('id')->name('v1.processes.toggle');
|
||||
|
||||
// Process Steps (공정 단계)
|
||||
Route::prefix('{processId}/steps')->whereNumber('processId')->group(function () {
|
||||
Route::get('', [ProcessStepController::class, 'index'])->name('v1.processes.steps.index');
|
||||
Route::post('', [ProcessStepController::class, 'store'])->name('v1.processes.steps.store');
|
||||
Route::patch('/reorder', [ProcessStepController::class, 'reorder'])->name('v1.processes.steps.reorder');
|
||||
Route::get('/{stepId}', [ProcessStepController::class, 'show'])->whereNumber('stepId')->name('v1.processes.steps.show');
|
||||
Route::put('/{stepId}', [ProcessStepController::class, 'update'])->whereNumber('stepId')->name('v1.processes.steps.update');
|
||||
Route::delete('/{stepId}', [ProcessStepController::class, 'destroy'])->whereNumber('stepId')->name('v1.processes.steps.destroy');
|
||||
});
|
||||
});
|
||||
|
||||
// Work Order API (작업지시 관리)
|
||||
|
||||
Reference in New Issue
Block a user