<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Request;

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

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules(Request $request)
    {

        if ($request->email_request == 'registration') {
            return [
                'profile_id' => ['required'],
                'name' => ['required', 'regex:/(([a-zA-Z]+)\s+\1$|[a-zA-Z]+$)/u'],
                'surname' => ['required', 'regex:/(([a-zA-Z]+)\s+\1$|[a-zA-Z]+$)/u'],
                'personalemail' => ['required', 'email'] 
            ];
        } elseif ($request->email_request == 'laundering') {
            return [
                'profile_id' => ['required'],
                'name_clean' => ['required', 'regex:/(([a-zA-Z]+)\s+\1$|[a-zA-Z]+$)/u'],
                'personalemail' => ['required', 'email']
            ];
        } else {
            return [
                'profile_id' => ['required'],
                'deleteemail' => ['required', 'email']
            ];
        }
    }

    public function messages()
    {
            return [
                'profile_id.required' => ' Seleccione Perfil relacionado a la tarea.',
                'name.required' => 'El campo Nombre/s es requerido.',
                'name.regex' => 'El formato del nombre es inválido',
                'surname.required' => 'El campo Apellido/s es requerido.',
                '.regex' => 'El formato del Apellido es inválido',
                'personalemail.required' => 'El campo Email Personal es requerido.',
                'personalemail.email' => 'El campo Email Personal debe ser un email válido. ',

                'profile_id.required' => ' Seleccione Perfil relacionado a la tarea.',
                'name_clean.required' => 'El campo nombre de la cuenta a blanquer es requerido.',
                'name_clean.regex' => 'El formato del nombre de la cuenta a blanquear es inválido',
                'personalemail.required' => 'El campo Email Personal es requerido.',
                'personalemail.email' => 'El campo Email Personal debe ser un email válido. ',

                'profile_id.required' => ' Seleccione Perfil relacionado a la tarea.',
                'deleteemail.required' => 'El campo Mail a eliminar es requerido.',
                'deleteemail.email' => 'El campo Mail a eliminar debe ser un email válido. ',
            ];
    }
}
