<?php

namespace App\Livewire\Campagne;

use Livewire\Component;
use App\Models\Campagna;

class CampagnaEdit extends Component
{
    public Campagna $campagna;
    public string $descrizione = '';
    public string $start_date = '';
    public string $end_date = '';

    public function mount(Campagna $campagna)
    {
        $this->campagna = $campagna;
        $this->descrizione = $campagna->descrizione;
        $this->start_date = $campagna->start_date->format('Y-m-d');
        $this->end_date = $campagna->end_date->format('Y-m-d');
    }

    protected function rules(): array
    {
        return [
            'descrizione' => 'required|string|max:255',
            'start_date' => 'required|date',
            'end_date' => 'required|date|after:start_date',
        ];
    }

    public function save()
    {
        $this->validate();

        $this->campagna->update([
            'descrizione' => $this->descrizione,
            'start_date' => $this->start_date,
            'end_date' => $this->end_date,
        ]);

        session()->flash('success', "Campagna aggiornata.");
        return $this->redirect(route('campagne.index'), navigate: true);
    }

    public function render()
    {
        return view('livewire.campagne.campagna-form', [
            'titolo' => "Modifica: {$this->campagna->descrizione}",
            'btnLabel' => 'Salva Modifiche',
        ]);
    }
}
