
import { APP_CONFIG } from './config';

export const formatCurrency = (amount: number, currency: string = 'VND', compact: boolean = false): string => {
  if (amount === undefined || amount === null) return '-';
  
  if (currency === 'VND') {
      if (compact) {
          if (amount >= 1_000_000_000) return `${(amount / 1_000_000_000).toFixed(2)} Tỷ`;
          if (amount >= 1_000_000) return `${(amount / 1_000_000).toFixed(1)} Tr`;
          return amount.toLocaleString('vi-VN');
      }
      return new Intl.NumberFormat('vi-VN', { style: 'currency', currency: 'VND' }).format(amount);
  }
  
  return new Intl.NumberFormat('en-US', { style: 'currency', currency }).format(amount);
};

export const formatDate = (dateString?: string | Date): string => {
  if (!dateString) return '-';
  return new Date(dateString).toLocaleDateString(APP_CONFIG.DATE_FORMAT);
};

export const formatDateTime = (dateString?: string | Date): string => {
  if (!dateString) return '-';
  return new Date(dateString).toLocaleString(APP_CONFIG.DATE_FORMAT);
};

export const formatNumber = (num: number, decimals: number = 2): string => {
    return num.toLocaleString('vi-VN', { minimumFractionDigits: decimals, maximumFractionDigits: decimals });
};
