<?php

namespace App\Livewire\Admin\Client;

use Livewire\Component;
use Livewire\Attributes\On;
use App\Models\Client;
use Exception;
use Illuminate\Support\Facades\Auth;

class DeleteClient extends Component
{
    #[On('confirm-delete')]
    public function deleteClient($payload)
    {
        try {
            // Sua lógica de autorização e exclusão (Correta)
            $this->authorize('deleteClient', Auth::user());

            $deletedClient = Client::findOrFail($payload);

            if ($deletedClient) {
                $deletedClient->delete();
            }

            // Sucesso (Dentro do try, onde deve estar)
            $this->dispatch('client-deleted');
            $this->dispatch('notify', message: 'Cliente excluído com sucesso!');

        } catch (Exception $e) {
            // Tratamento de erro
            $this->dispatch('notify', message: 'Você não possui permissão para realizar essa ação.', type: 'error');
        }
    }

    public function render()
    {
        return '<div></div>';
    }
}