'required|string|max:120', 'last_name' => 'required|string|max:120', 'cpf' => 'required|string|max:14|unique:users,cpf', 'registration' => 'required|string|max:255|unique:users,registration', 'email' => 'required|email|unique:users,email', 'phone' => 'required|string|max:20', 'position_id' => 'required|integer|exists:positions,id', 'sector_id' => 'required|integer|exists:sectors,id', ]; } public function messages(): array { return [ 'registration.unique' => $this->registrationTakenMessage(), 'cpf.unique' => __('messages.landing.cpf_taken'), 'email.unique' => __('messages.landing.email_taken'), ]; } private function registrationTakenMessage(): string { $user = User::where('registration', $this->input('registration'))->first(); return match (true) { (bool) $user?->first_access_completed_at => __('messages.landing.registration_first_access_done'), $user?->status === UserStatusEnum::PENDING => __('messages.landing.registration_pending_approval'), default => __('messages.landing.registration_taken'), }; } }