<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Validation\Rule;
use App\Laboratorio;

class LaboratorioRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }


    public function rules()
    {

        if (isset($this->id)) { // Cuando es una actualizacion
            return [
                'no_laboratorio' => "numeric|unique:mysql.laboratorio,no_laboratorio," . $this->id . ",id_laboratorio|min:100000|max:999999999999999",
                'nom_laboratorio' => "min:5|max:50|unique:mysql.laboratorio,nom_laboratorio," . $this->id . ",id_laboratorio",
                'super_admin_id' => "required"
            ];

        } else { // Cuando es un registro
            return [
                'no_laboratorio' => "required|numeric|unique:mysql.laboratorio,no_laboratorio|min:100000|max:999999999999999",
                'nom_laboratorio' => "required|min:5|max:50|unique:mysql.laboratorio,nom_laboratorio",
                'super_admin_id' => "required"
            ];
        }

    }


    public function attributes()
    {
        return [
            'no_laboratorio' => 'número de laboratorio',
            'nom_laboratorio' => 'nombre/descripción',
            'super_admin_id' => 'cliente'
        ];
    }


    public function messages()
    {
        return [
            'no_laboratorio.required' => 'El campo es obligatorio',
            'nom_laboratorio.required' => 'El campo es obligatorio',
            'super_admin_id.required' => 'El cliente es obligatorio',
            'no_laboratorio.numeric' => 'El campo debe ser numérico',

            'no_laboratorio.unique' => 'El número de laboratorio ya existe',
            'nom_laboratorio.unique' => 'El nombre de laboratorio ya existe',

            'no_laboratorio.min' => 'El número de laboratorio debe tener mínimo 6 carácteres',
            'no_laboratorio.max' => 'El número de laboratorio debe tener máximo 15 carácteres',

            'nom_laboratorio.min' => 'El nombre/descripción debe tener mínimo 5 carácteres',
            'nom_laboratorio.max' => 'El nombre/descripción debe tener máximo 50 carácteres'
        ];
    }
}
