<?php

namespace App\Http\Livewire\Pabellon;

use Livewire\Component;
use App\Models\Pabellon;
use App\Models\Tumba;

class createPabellon extends Component
{
    public $nombrePabellon;
    public $columnasCreate;
    public $filasCreate;
    public $nameCreate;
    public $nameEdit;

    public function storePabellon()
    {
        // Validar los campos
        $this->validate([
            'nameCreate' => 'required|string|max:100',
            'columnasCreate' => 'required',
            'filasCreate' => 'required',
        ]);

        // Crear un nuevo pabellón
        $pabellon = new Pabellon();
        $pabellon->nombre = $this->nameCreate;
        $pabellon->cant_columnas = $this->columnasCreate;
        $pabellon->cant_filas = $this->filasCreate;
        $pabellon->save();

        // Obtener el ID del pabellón recién creado
        $idPabellon = $pabellon->id;

        // Crear tumbas asociadas al pabellón
        for ($i = 1; $i <= $this->filasCreate; $i++) {
            for ($j = 1; $j <= $this->columnasCreate; $j++) {
                if ($i <= 3){
                    $tumba = new Tumba();
                    $tumba->contador = '1';
                    $tumba->estado = '0';
                    $tumba->montoTumba = '3270.00';
                    $tumba->pabellon_id = $idPabellon;
                    $tumba->letra = $i;
                    $tumba->numero = $j;
                    $tumba->save();
                
                }else{
                    $tumba = new Tumba();
                    $tumba->contador = '1';
                    $tumba->estado = '0';
                    $tumba->montoTumba = '2870.00';
                    $tumba->pabellon_id = $idPabellon;
                    $tumba->letra = $i;
                    $tumba->numero = $j;
                    $tumba->save();
                }
            }
        }

        // Emitir un evento o realizar otras acciones después de crear el pabellón y las tumbas
        /* $this->emit('pabellonCreado'); */
        $this->distpatch('refresh');
        // Limpiar los campos después de crear el pabellón
        /* $this->reset(['nameCreate', 'columnasCreate', 'filasCreate']); */

        // Emitir un evento de éxito
        /* session()->flash('message', 'Pabellón creado exitosamente.'); */
    }

    public function editPabellon($idPabellon){
        $this->validate([
            'nameEdit' => 'required|string|max:100',
        ]);

        $pabellon = Pabellon::find($idPabellon);

        $pabellon->nombre = $this->nameEdit;
        $pabellon->save();

        $this->distpatch('refresh');
        
    }

    public function render()
    {
        return view('livewire.pabellon.modal.create-pabellon');
    }
}
