<?php

declare(strict_types=1);

namespace App\Enums;

use Filament\Support\Contracts\HasLabel;

enum TaxCode: string implements HasLabel
{
    case HOOG_VERK = 'HOOG_VERK';
    case HOOG_VERK_21 = 'HOOG_VERK_21';
    case LAAG_VERK = 'LAAG_VERK';
    case LAAG_VERK_9 = 'LAAG_VERK_9';
    case VERL_VERK_L9 = 'VERL_VERK_L9';
    case VERL_VERK = 'VERL_VERK';
    case AFW = 'AFW';
    case BU_EU_VERK = 'BU_EU_VERK';
    case BI_EU_VERK = 'BI_EU_VERK';
    case BI_EU_VERK_D = 'BI_EU_VERK_D';
    case AFST_VERK = 'AFST_VERK';
    case LAAG_INK = 'LAAG_INK';
    case LAAG_INK_9 = 'LAAG_INK_9';
    case VERL_INK_L9 = 'VERL_INK_L9';
    case HOOG_INK = 'HOOG_INK';
    case HOOG_INK_21 = 'HOOG_INK_21';
    case VERL_INK = 'VERL_INK';
    case AFW_VERK = 'AFW_VERK';
    case BU_EU_INK = 'BU_EU_INK';
    case BI_EU_INK = 'BI_EU_INK';
    case GEEN = 'GEEN';

    public function getLabel(): string
    {
        return match ($this) {
            self::HOOG_VERK => 'BTW hoog, verkopen 19%',
            self::HOOG_VERK_21 => 'BTW hoog, verkopen 21%',
            self::LAAG_VERK => 'BTW laag, verkopen *',
            self::LAAG_VERK_9 => 'BTW laag, verkopen 9%',
            self::VERL_VERK_L9 => 'BTW Verlegd 9% (1e op de btw-aangifte)',
            self::VERL_VERK => 'BTW Verlegd 21% (1e op de btw-aangifte)',
            self::AFW => 'Afwijkend btw-tarief',
            self::BU_EU_VERK => 'Leveringen naar buiten de EU 0%',
            self::BI_EU_VERK => 'Goederen naar binnen de EU 0%',
            self::BI_EU_VERK_D => 'Diensten naar binnen de EU 0%',
            self::AFST_VERK => 'Afstandsverkopen naar binnen de EU 0%',
            self::LAAG_INK => 'BTW laag, inkopen *',
            self::LAAG_INK_9 => 'BTW laag, inkopen 9%',
            self::VERL_INK_L9 => 'BTW verlegd, laag, inkopen',
            self::HOOG_INK => 'BTW hoog, inkopen',
            self::HOOG_INK_21 => 'BTW hoog, inkopen 21%',
            self::VERL_INK => 'BTW verlegd, hoog, inkopen',
            self::AFW_VERK => 'Afwijkend btw-tarief verkoop',
            self::BU_EU_INK => 'Leveringen/diensten van buiten de EU 0%',
            self::BI_EU_INK => 'Leveringen/diensten van binnen de EU 0%',
            self::GEEN => 'Geen BTW',
        };
    }
}
