<?php

namespace App\Livewire\Proclamatori;

use Livewire\Component;
use Livewire\WithPagination;
use App\Models\Proclamatore;

class ProclamatoreCestino extends Component
{
    use WithPagination;

    public function restore(int $id)
    {
        $proclamatore = Proclamatore::onlyTrashed()->findOrFail($id);
        $proclamatore->restore();
        activity()->causedBy(auth()->user())
            ->performedOn($proclamatore)
            ->log('restored');
        session()->flash('success', "Proclamatore ripristinato.");
    }

    public function forceDelete(int $id)
    {
        $proclamatore = Proclamatore::onlyTrashed()->findOrFail($id);

        if ($proclamatore->assegnazioni()->exists()) {
            session()->flash('error', 'Impossibile eliminare definitivamente: il proclamatore ha assegnazioni nello storico.');
            return;
        }

        activity()->causedBy(auth()->user())
            ->log('force_deleted_proclamatore');
        $proclamatore->forceDelete();
        session()->flash('success', 'Proclamatore eliminato definitivamente.');
    }

    public function render()
    {
        return view('livewire.proclamatori.proclamatore-cestino', [
            'proclamatori' => Proclamatore::onlyTrashed()->orderByDesc('deleted_at')->paginate(20),
        ]);
    }
}
