<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class UpdatedPersonalRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     */
    public function authorize(): bool
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
     */
    public function rules(): array
    {
        return [
            'nombre' => 'required|regex:/^[a-zA-ZáéíóúñÁÉÍÓÚ]+( [a-zA-ZáéíóúñÁÉÍÓÚ]+)*$/',
            'apellido' => 'required|regex:/^[a-zA-ZáéíóúñÁÉÍÓÚ]+( [a-zA-ZáéíóúñÁÉÍÓÚ]+)*$/',
            'dni' => 'required|numeric|digits_between:7,8 |unique:personal,dni',
            'domicilio' => 'required|max:20',
        ];
    }

    public function messages() {

        return [
            'nombre.required' => 'el campo nombre es requerido',
            'nombre.regex' => 'el campo nombre sólo debe contener letras',
            'apellido.required' => 'el campo apellido es requerido', 
            'apellido.regex' => 'el campo apellido sólo debe contener letras',
            'dni.required' => 'el campo DNI es requerido', 
            'dni.numeric'  => 'el campo DNI sólo admite números',
            'dni.digits_between'  => 'El campo DNI sólo admite hasta 8 dígitos',
            'dni.unique' => 'el campo DNI no se puede repetir',
            'domicilio.required' => 'el campo domicilio es requerido',
            'domicilio.max' => 'el campo domicilio sólo puede tener 20 caracteres',
        ];
    }
}
