<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Prenotazione extends \App\Models\AbstractModels\AbstractPrenotazione
{
    //STATI
    const STATO_INVIATA = 'inviata'; //cliente ha inviato la prenotazione
    const STATO_CONFERMATA = 'confermata'; //organizzatore ha confermato la prenotazione
    const STATO_LISTA_ATTESA = 'lista_attesa'; //organizzatore ha messo la prenotazione in lista d'attesa
    const STATO_ANNULLATA = 'annullata'; //organizzatore ha annullato la prenotazione
    const STATO_CANCELLATA = 'cancellata'; //cliente ha cancellato la prenotazione
    const STATO_RIFIUTATA = 'rifiutata'; //organizzatore ha rifiutato la prenotazione

    
    
    public static function getStati()
    {
        return collect([
            self::STATO_INVIATA => [
                'label' => 'Inviata',
                'class' => 'badge bg-info',
                'value' => self::STATO_INVIATA,
                'message' => 'La prenotazione è stata inviata',
            ],
            self::STATO_CONFERMATA => [
                'label' => 'Confermata',
                'class' => 'badge bg-success',
                'value' => self::STATO_CONFERMATA,
                'message' => 'La prenotazione è stata confermata dall\'organizzatore',
            ],
            self::STATO_LISTA_ATTESA => [
                'label' => 'Lista d\'attesa',
                'class' => 'badge bg-warning',
                'value' => self::STATO_LISTA_ATTESA,
                'message' => 'La prenotazione è stata messa in lista d\'attesa',
            ],
            self::STATO_CANCELLATA => [
                'label' => 'Cancellata',
                'class' => 'badge bg-danger',
                'value' => self::STATO_CANCELLATA,
                'message' => 'La prenotazione è stata cancellata dal cliente',
            ],
            self::STATO_RIFIUTATA => [
                'label' => 'Rifiutata',
                'class' => 'badge bg-danger',
                'value' => self::STATO_RIFIUTATA,
                'message' => 'La prenotazione è stata rifiutata dall\'organizzatore',
            ],
            self::STATO_ANNULLATA => [
                'label' => 'Annullata',
                'class' => 'badge bg-danger',
                'value' => self::STATO_ANNULLATA,
                'message' => 'La prenotazione è stata annullata dall\'organizzatore',
            ],
        ]);
    }

    public function label()
    {
        return '#'.$this->id.', '.$this->nome . ' ' . $this->cognome;
    }


}
