<?php
declare(strict_types=1);

function suporte_categorias(): array
{
    return [
        'corrida' => 'Corrida especifica',
        'conta' => 'Conta e cadastro',
        'documentos' => 'Documentos',
        'veiculo' => 'Veiculo',
        'ganhos_pagamentos' => 'Ganhos e pagamentos',
        'item_encontrado' => 'Item encontrado no veiculo',
        'seguranca' => 'Seguranca',
        'problema_app' => 'Problema no app',
        'outros' => 'Outros assuntos',
    ];
}

function suporte_prioridades(): array
{
    return [
        'baixa' => 'Baixa',
        'normal' => 'Normal',
        'alta' => 'Alta',
        'urgente' => 'Urgente',
    ];
}

function suporte_statuses(): array
{
    return [
        'aberto' => 'Aberto',
        'em_atendimento' => 'Em atendimento',
        'aguardando_motorista' => 'Aguardando motorista',
        'resolvido' => 'Resolvido',
        'fechado' => 'Fechado',
    ];
}

function suporte_label(array $labels, string $key): string
{
    return $labels[$key] ?? ucfirst(str_replace('_', ' ', $key));
}

function suporte_categoria_label(string $categoria): string
{
    return suporte_label(suporte_categorias(), $categoria);
}

function suporte_prioridade_label(string $prioridade): string
{
    return suporte_label(suporte_prioridades(), $prioridade);
}

function suporte_status_label(string $status): string
{
    return suporte_label(suporte_statuses(), $status);
}

function suporte_normalizar_opcao(string $valor, array $opcoes, string $fallback): string
{
    $valor = trim($valor);
    return array_key_exists($valor, $opcoes) ? $valor : $fallback;
}

function suporte_status_class(string $status): string
{
    return match ($status) {
        'resolvido' => 'badge-ok',
        'fechado' => 'badge-muted',
        'aguardando_motorista' => 'badge-warn',
        'em_atendimento' => 'badge-info',
        default => 'badge-bad',
    };
}

function suporte_prioridade_class(string $prioridade): string
{
    return match ($prioridade) {
        'urgente' => 'badge-bad',
        'alta' => 'badge-warn',
        'baixa' => 'badge-muted',
        default => 'badge-info',
    };
}
