<?php

namespace App\Support;

class StatusBadge
{
    /**
     * Map a status string to an <x-badge> variant.
     */
    public static function variant(?string $status): string
    {
        $key = strtolower(trim((string) $status));
        $key = str_replace([' ', '-'], '_', $key);

        return match ($key) {
            'active', 'present', 'approved', 'completed', 'cleared', 'paid',
            'published', 'available', 'resolved', 'success', 'compliant',
            'locked', 'verified' => 'success',

            'pending', 'clearance_pending', 'in_progress', 'withdrawal_pending',
            'expiring_soon', 'late', 'warning', 'submitted',
            'draft_review', 'at_risk', 'behind' => 'warning',

            'inactive', 'absent', 'rejected', 'cancelled', 'canceled', 'suspended',
            'terminated', 'expired', 'danger', 'failed', 'overdue', 'blocked', 'high' => 'danger',

            'half_day', 'assigned', 'info', 'processing', 'on_leave',
            'onboarding', 'notice_period', 'team', 'under_review', 'medium' => 'info',

            'private', 'archived', 'na', 'waived', 'draft', 'low' => 'default',

            default => 'default',
        };
    }
}
