| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- <?php
- namespace App\Http\Requests;
- use App\Enums\UserStatusEnum;
- use App\Models\User;
- use Illuminate\Foundation\Http\FormRequest;
- class LandingPageRegisterRequest extends FormRequest
- {
- public function rules(): array
- {
- return [
- 'name' => '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'),
- };
- }
- }
|