['required', 'integer', 'exists:units,id'], 'reference_year' => ['required', 'integer', 'min:2020', 'max:2099'], 'reference_month' => ['required', 'integer', 'min:1', 'max:12'], 'revenue_value' => ['nullable', 'numeric', 'min:0'], ]; } public function messages(): array { return [ 'unit_id.required' => 'A unidade é obrigatória.', 'unit_id.exists' => 'Unidade não encontrada.', 'reference_year.required' => 'O ano de referência é obrigatório.', 'reference_month.required' => 'O mês de referência é obrigatório.', 'reference_month.between' => 'O mês de referência deve ser entre 1 e 12.', 'revenue_value.min' => 'O faturamento não pode ser negativo.', ]; } protected function prepareForValidation(): void { if ($this->revenue_value === null || $this->revenue_value === '') { $this->merge(['revenue_value' => 0]); } } }