<?php

namespace App\Http\Livewire\Anestesiologo;

use App\Models\Anestesiologo;
use Livewire\Component;


class Nuevo extends Component
{
  
    /*************************/
    /**  ANESETESIOLOGO     **/
    /*************************/
    public $tipo_documento = ' ';
    public $documento;
    public $nombre;
    public $genero = ' ';

    /*************************/
    /**  VALIDAR            **/
    /*************************/
    public function rules()
    {
        return [
            'tipo_documento' => ['required'],
            'documento' => ['required', 'string', 'min:5', 'max:15'],
            'nombre' => ['required', 'string', 'min:3', 'max:65'],
            'genero' => ['required'],
        ];
    }
    /*************************/
    /**  RESETEAR           **/
    /*************************/
    public function resetear()
    {
        if ($this->tipo_documento == ' ') {
            $mensaje = 'El campo tipo de documento no debe estar vacio.';
            $this->emit('ev_msj_info', $mensaje);
        } elseif ($this->genero == ' ') {
            $mensaje = 'El campo genero no debe estar vacio.';
            $this->emit('ev_msj_info', $mensaje);
        } else {
            $this->reset([
                'documento',
                'nombre',
            ]);
        }
    }
    /*************************/
    /**  REGISTRAR          **/
    /*************************/
    public function registrar_anestesiologo()
    {
        $this->emit('ev_cerrar_modal', 'modal_registrar_anestesiologo');

        $this->validate();
        $anestesiologo = Anestesiologo::create([
            'documento' => $this->tipo_documento . $this->documento,
            'nombre' => $this->nombre,
            'genero' => $this->genero,
            'activo' => '1',
        ]);
        $anestesiologo->save();

        $mensaje = 'El anestesiologo ha sido registrada exitosamente.';
        $this->emit('ev_msj_guardado', $mensaje);
        $this->emit('ev_refrescar_anestesiologos');
        $this->resetear();

    }

    public function render()
    {
        return view('livewire.anestesiologo.nuevo');
    }
}
