<?php

namespace App\Http\Livewire\Cirujano;

use Illuminate\Support\Facades\DB;
use Livewire\WithPagination;
use Livewire\Component;
use App\Models\Cirujano;

class SelectCirujano extends Component
{

    use WithPagination;

    /*****************************/
    /*** ATRIBUTOS              **/
    /*****************************/
    protected $paginationTheme = 'bootstrap';
    public $numeroregistros = 8;
    public $buscador_cirujano;
    public $cirujano_seleccionado;
    public $cirujano;
    public $display = "d-none";

    /*****************************/
    /*** CONSTRUCTOR            **/
    /*****************************/
    public function mount($id)
    {
        if($id != null)
        {   
            $cirujano =  Cirujano::find($id);
            $this->cirujano_seleccionado = $cirujano->documento." ". $cirujano->nombre;
        }
    }    
    /*****************************/
    /*** SELECCIONAR            **/
    /*****************************/
    public function selecionar_cirujano($id)
    {
        $cirujano =  Cirujano::find($id);
        $this->cirujano_seleccionado = $cirujano->documento." ". $cirujano->nombre;
        $this->display = 'd-none';
        $this->emit('ev_formulario_registro','seleccionar_cirujano',$cirujano->id);
    }     
    /*****************************/
    /*** MOSTAR                 **/
    /*****************************/
    public function montar_lista()
    {
        $this->display = 'd-block';
    }    
    /*****************************/
    /*** RENDER                 **/
    /*****************************/
    public function render()
    {
        $cirujanos = DB::table('cirujanos')
        ->where('cirujanos.activo', '=', '1')
        ->select(
            'cirujanos.id',
            'cirujanos.documento',
            'cirujanos.nombre',
            'cirujanos.activo',
        )
        ->where(function ($query) {
            $query->where('cirujanos.documento', 'like', '%' . $this->buscador_cirujano . '%')
                ->Orwhere('cirujanos.nombre', 'like', '%' . $this->buscador_cirujano . '%')
                ->Orwhere('cirujanos.id', 'like', '%' . $this->buscador_cirujano . '%');
        })->orderBy('nombre', 'desc' )
        ->paginate($this->numeroregistros);
    $count_cirujanos_busqueda = $cirujanos->count();
        return view('livewire.cirujano.select-cirujano',compact('cirujanos','count_cirujanos_busqueda'));
    }
}
