2025-12-26 18:56:24 +09:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Requests\V1\Process;
|
|
|
|
|
|
|
|
|
|
use Illuminate\Foundation\Http\FormRequest;
|
|
|
|
|
|
|
|
|
|
class StoreProcessRequest extends FormRequest
|
|
|
|
|
{
|
|
|
|
|
public function authorize(): bool
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function rules(): array
|
|
|
|
|
{
|
|
|
|
|
return [
|
|
|
|
|
'process_name' => ['required', 'string', 'max:100'],
|
|
|
|
|
'description' => ['nullable', 'string'],
|
|
|
|
|
'process_type' => ['required', 'string', 'in:생산,검사,포장,조립'],
|
|
|
|
|
'department' => ['nullable', 'string', 'max:100'],
|
|
|
|
|
'work_log_template' => ['nullable', 'string', 'max:100'],
|
2026-02-11 09:51:35 +09:00
|
|
|
'document_template_id' => ['nullable', 'integer', 'exists:document_templates,id'],
|
|
|
|
|
'needs_work_log' => ['nullable', 'boolean'],
|
|
|
|
|
'work_log_template_id' => ['nullable', 'integer', 'exists:document_templates,id'],
|
2025-12-26 18:56:24 +09:00
|
|
|
'required_workers' => ['nullable', 'integer', 'min:1'],
|
|
|
|
|
'equipment_info' => ['nullable', 'string', 'max:255'],
|
|
|
|
|
'work_steps' => ['nullable'],
|
|
|
|
|
'note' => ['nullable', 'string'],
|
|
|
|
|
'is_active' => ['nullable', 'boolean'],
|
|
|
|
|
|
2026-01-08 20:23:52 +09:00
|
|
|
// 분류 규칙 (패턴 규칙)
|
2025-12-26 18:56:24 +09:00
|
|
|
'classification_rules' => ['nullable', 'array'],
|
|
|
|
|
'classification_rules.*.rule_type' => ['required_with:classification_rules.*', 'string', 'in:품목코드,품목명,품목구분'],
|
|
|
|
|
'classification_rules.*.matching_type' => ['required_with:classification_rules.*', 'string', 'in:startsWith,endsWith,contains,equals'],
|
|
|
|
|
'classification_rules.*.condition_value' => ['required_with:classification_rules.*', 'string', 'max:255'],
|
|
|
|
|
'classification_rules.*.priority' => ['nullable', 'integer', 'min:0'],
|
|
|
|
|
'classification_rules.*.description' => ['nullable', 'string', 'max:255'],
|
|
|
|
|
'classification_rules.*.is_active' => ['nullable', 'boolean'],
|
2026-01-08 20:23:52 +09:00
|
|
|
|
|
|
|
|
// 개별 품목 연결
|
|
|
|
|
'item_ids' => ['nullable', 'array'],
|
|
|
|
|
'item_ids.*' => ['integer', 'exists:items,id'],
|
2025-12-26 18:56:24 +09:00
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function attributes(): array
|
|
|
|
|
{
|
|
|
|
|
return [
|
|
|
|
|
'process_name' => '공정명',
|
|
|
|
|
'description' => '공정 설명',
|
|
|
|
|
'process_type' => '공정구분',
|
|
|
|
|
'department' => '담당부서',
|
|
|
|
|
'work_log_template' => '작업일지 양식',
|
2026-02-11 09:51:35 +09:00
|
|
|
'document_template_id' => '중간검사 양식',
|
|
|
|
|
'needs_work_log' => '작업일지 여부',
|
|
|
|
|
'work_log_template_id' => '작업일지 양식 ID',
|
2025-12-26 18:56:24 +09:00
|
|
|
'required_workers' => '필요인원',
|
|
|
|
|
'equipment_info' => '설비정보',
|
|
|
|
|
'work_steps' => '작업단계',
|
|
|
|
|
'note' => '비고',
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
}
|