'required|string|max:255', 'code' => 'required|string|max:50|unique:projects,code,' . $this->project?->id, 'description' => 'nullable|string', 'status' => 'nullable|in:planning,active,on_hold,completed,cancelled', 'budget' => 'nullable|numeric|min:0', 'default_currency_id' => 'nullable|exists:currencies,id', 'manager_id' => 'nullable|exists:users,id', 'start_date' => 'nullable|date', 'end_date' => 'nullable|date|after_or_equal:start_date', 'location' => 'nullable|string|max:255', ]; } /** * Get custom messages for validator errors. */ public function messages(): array { return [ 'name.required' => __('project.validation_name_required'), 'code.required' => __('project.validation_code_required'), 'code.unique' => __('project.validation_code_unique'), 'status.in' => __('project.validation_status_invalid'), 'budget.numeric' => __('project.validation_budget_numeric'), 'end_date.after_or_equal' => __('project.validation_end_date_after'), 'manager_id.exists' => __('project.validation_manager_exists'), ]; } }