/**
 * Sprint 4 Phase B/1 (audit O-refactor-04 хвост): formatters для AdminTenantDetailView
 * + sub-components TenantDetailHeader / TenantDetailTabs.
 */

export function formatRub(v: number): string {
    if (v === 0) return '0 ₽';
    const sign = v < 0 ? '−' : '';
    return sign + new Intl.NumberFormat('ru-RU').format(Math.abs(v)) + ' ₽';
}

export function formatDate(iso: string): string {
    return new Date(iso).toLocaleString('ru-RU', { dateStyle: 'short', timeStyle: 'short' });
}

export function statusColor(s: string): string {
    if (s === 'active') return 'success';
    if (s === 'trial') return 'info';
    if (s === 'overdue') return 'warning';
    return 'error';
}

export function txTypeLabel(t: string): string {
    return (
        {
            topup: 'Пополнение',
            lead_charge: 'Списание за лид',
            refund: 'Возврат',
            tariff_charge: 'Списание тарифа',
            manual_adjustment: 'Ручная корректировка',
        }[t] ?? t
    );
}

export function txTypeColor(t: string, amount: number): string {
    if (amount > 0) return 'success';
    if (t === 'manual_adjustment') return 'warning';
    return 'error';
}

export function roleLabel(r: string): string {
    return { admin: 'Администратор', manager: 'Менеджер', reader: 'Читатель' }[r] ?? r;
}
