<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class RigaFatturazione extends \App\Models\AbstractModels\AbstractRigaFatturazione
{
    CONST GRATUITO = 'gratuito';
    CONST REGISTRATO = 'registrato';
    CONST FATTURATO = 'fatturato';
    CONST PAGATO = 'pagato';
    CONST ANNULLATO = 'annullato';

    public static function getStati()
    {
        return collect([
            'registrato' => [
                'value' => self::REGISTRATO, 
                'label' => 'Registrato' ,
                'color' => 'primary', 
                'icon' => 'bx bx-file' ,
                'description' => 'Fatturazione registrata'],
            'fatturato' => [
                'value' => self::FATTURATO, 
                'label' => 'Fatturato' ,
                'color' => 'success', 
                'icon' => 'bx bx-file-text' ,
                'description' => 'Fatturazione fatturata'],
            'pagato' => [
                'value' => self::PAGATO, 
                'label' => 'Pagato' ,
                'color' => 'info', 
                'icon' => 'bx bx-file-text' ,
                'description' => 'Fatturazione pagata'],
            'annullato' => [
                'value' => self::ANNULLATO, 
                'label' => 'Annullato' ,
                'color' => 'danger', 
                'icon' => 'bx bx-file-text' ,
                'description' => 'Fatturazione annullata'
                ],
            'gratuito' => [
                'value' => self::GRATUITO, 
                'label' => 'Gratuito' ,
                'color' => 'warning', 
                'icon' => 'bx bx-file-text' ,
                'description' => 'Fatturazione gratuita'
                ],
        ]);
    }

    public static function getStato($stato)
    {
        return self::getStati()->get($stato);
    }

    public static function getStatoLabel($stato)
    {
        return self::getStato($stato)['label'];
    }

    public static function getStatoColor($stato)
    {
        return self::getStato($stato)['color'];
    }

    public static function getStatoIcon($stato)
    {
        return self::getStato($stato)['icon'];
    }

    public static function getStatoDescription($stato)
    {
        return self::getStato($stato)['description'];
    }

    public function ordini()
    {
        $ordini = Ordine::where('dispositivo_id', $this->dispositivo_id)
        ->where('stato', Ordine::PAGATO)
        ->whereDate('updated_at', today())
        ->count();
        return $ordini;
    }
}
