<?php

namespace App\Http\Livewire\Intervencion;

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

class SelectIntervencion extends Component
{
    use WithPagination;

    /*****************************/
    /* ATRIBUTOS */
    /*****************************/
    protected $paginationTheme = 'bootstrap';
    public $numeroregistros = 8;
    public $buscador_intervencion;
    public $intervencion_seleccionado;
    public $intervencion_id;
    public $display = 'd-none';

    /*****************************/
    /* CONSTRUCTOR */
    /*****************************/
    public function mount($id)
    {
        if ($id != null) {
            $intervencion = Intervencion::find($id);
            $this->intervencion_seleccionado = $intervencion->documento . ' ' . $intervencion->nombre;
        }
    }
    /*****************************/
    /* SELECCIONAR */
    /*****************************/
    public function selecionar_intervencion($id)
    {
        $intervencion = Intervencion::find($id);
        $this->intervencion_seleccionado = $intervencion->id . ' ' . $intervencion->documento . ' ' . $intervencion->nombre;

        $this->emit('ev_formulario_registro', 'seleccionar_intervencion', $intervencion->id);
        $this->display = 'd-none';
    }
    /*****************************/
    /* MOSTAR */
    /*****************************/
    public function montar_lista()
    {
        $this->display = 'd-block';
    }
    /*****************************/
    /* RENDER */
    /*****************************/
    public function render()
    {
        $intervencions = DB::table('intervencions')
            ->join('clinicas', 'clinicas.id', '=', 'intervencions.clinica_id')
            ->where('intervencions.activo', '=', '1')
            ->select(
                'intervencions.id',
                'intervencions.nombre',
                'clinicas.nombre  as clinica',
                'intervencions.activo',
            )
            ->where(function ($query) {
                $query
                    ->where('intervencions.nombre', 'like', '%' . $this->buscador_intervencion . '%')
                    ->Orwhere('intervencions.id', 'like', '%' . $this->buscador_intervencion . '%');
            })
            ->orderBy('nombre', 'desc')
            ->paginate($this->numeroregistros);

        $count_intervencions_busqueda = $intervencions->count();

        return view('livewire.intervencion.select-intervencion', compact('intervencions', 'count_intervencions_busqueda'));
    }
}
