<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class EventoForm extends \App\Models\AbstractModels\AbstractEventoForm
{
    const TESTO = 'text';
    const NUMERO = 'number';
    const DATA = 'date';
    const ORA = 'ora';
    const SELEZIONE = 'select';
    const MULTISELEZIONE = 'multi-select';
    const CHECKBOX = 'checkbox';
    const RADIO = 'radio';
    const ELENCO = 'elenco';

    public static function getTipi()
    {
        return collect([
            self::TESTO => ['value' => self::TESTO, 'label' => 'Testo', 'icon' => 'bx bx-text'],
            self::NUMERO => ['value' => self::NUMERO, 'label' => 'Numero', 'icon' => 'bx bx-hash'],
            self::DATA => ['value' => self::DATA, 'label' => 'Data', 'icon' => 'bx bx-calendar'],
            self::ORA => ['value' => self::ORA, 'label' => 'Ora', 'icon' => 'bx bx-time-five'],
            self::SELEZIONE => ['value' => self::SELEZIONE, 'label' => 'Selezione', 'icon' => 'bx bx-list-ul'],
            self::MULTISELEZIONE => ['value' => self::MULTISELEZIONE, 'label' => 'Multiselezione', 'icon' => 'bx bx-list-check'],
            self::CHECKBOX => ['value' => self::CHECKBOX, 'label' => 'Checkbox', 'icon' => 'bx bx-checkbox-checked'],
            self::RADIO => ['value' => self::RADIO, 'label' => 'Radio', 'icon' => 'bx bx-radio-circle-marked'],
            self::ELENCO => ['value' => self::ELENCO, 'label' => 'Elenco', 'icon' => 'bx bx-list-ul'],
        ]);
    }


    public static function getLabel($tipo)
    {
        return self::getTipi()[$tipo]['label'];
    }
    public static function getIcona($tipo)
    {
        return self::getTipi()[$tipo]['icon'];
    }

    public function getRisposta($prenotazione_id)
    {
        $x = \App\Models\PrenotazioneRisposta::where('prenotazione_id', $prenotazione_id)
        ->where('evento_form_id', $this->id);

        switch($this->tipo){
            case EventoForm::ELENCO:
                return $this->opzioni_form->where('id', $x->first()->risposta)->first()->label;
                break;

            default:
                return $x->first()->risposta;
                break;
        };

    }
}
