<?php

namespace App\Livewire\Campagne;

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

class CampagnaCreate extends Component
{
    public string $descrizione = '';
    public string $start_date = '';
    public string $end_date = '';

    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();

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

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

    public function render()
    {
        return view('livewire.campagne.campagna-form', [
            'titolo' => 'Nuova Campagna',
            'btnLabel' => 'Crea Campagna',
        ]);
    }
}
