using MudBlazor;
using SteUp.Shared.Core.Enum;

namespace SteUp.Shared.Core.Helpers;

public static class StatusEnumHelper
{
    public static string ConvertToHumanReadable(this StatusEnum enumValue)
    {
        // Sentence-case: l'enfasi la dà il peso del chip, non il maiuscolo (Regola del Peso, non del Maiuscolo).
        return enumValue switch
        {
            StatusEnum.InCorso => "In corso",
            StatusEnum.Completata => "Completata",
            StatusEnum.Verifica => "Verifica",
            StatusEnum.Annullata => "Annullata",
            _ => throw new ArgumentOutOfRangeException(nameof(enumValue), enumValue, null)
        };
    }

    public static StatusEnum ConvertToStatusEnum(string stringValue)
    {
        return stringValue switch
        {
            "COMPLETATA" => StatusEnum.Completata,
            "ANNULLATA" => StatusEnum.Annullata,
            "VERIFICA" => StatusEnum.Verifica,
            _ => StatusEnum.InCorso
        };
    }

    public static Color GetColor(this StatusEnum enumValue)
    {
        return enumValue switch
        {
            StatusEnum.InCorso or StatusEnum.Verifica => Color.Warning,
            StatusEnum.Completata => Color.Success,
            StatusEnum.Annullata => Color.Error,
            _ => Color.Default
        };
    }
}