<?php

namespace App\Livewire\Products;

use App\Models\Products\Product;
use Livewire\Component;

class Index extends Component
{
    public string $search = '';

    protected $queryString = ['search'];

    public function delete($id)
    {
        $this->authorize('admin.products.destroy');
        
        $product = Product::findOrFail($id);
        $product->delete();

        session()->flash('success', 'Producto eliminado.');
    }

    public function render()
    {
        $products = Product::when($this->search, function ($query) {
                $query->where(function ($q) {
                    $q->where('name', 'like', "%{$this->search}%")
                      ->orWhere('slug', 'like', "%{$this->search}%");
                });
            })
            ->orderBy('id', 'asc')
            ->get();

        return view('livewire.products.index', [
            'products' => $products,
        ])->layout('layouts.app');
    }
}

