/**
 * Friendly names for database tables/files
 * Translates technical names to user-readable Arabic labels
 */

export const fileNameTranslations: Record<string, string> = {
  // Financial & Accounting
  'invoices': 'الفواتير',
  'payments': 'المدفوعات',
  'expenses': 'المصاريف',
  'chart_of_accounts': 'دليل الحسابات',
  'journal_entries': 'قيود اليومية',
  'internal_transfers': 'التحويلات الداخلية',
  'internal_transfer_docs': 'وثائق التحويلات',

  // Banks & Checks
  'banks': 'البنوك',
  'general_banks': 'البنوك العامة',
  'checks_issued': 'الشيكات الصادرة',
  'checks_received': 'الشيكات الواردة',

  // Customers & Suppliers
  'customers': 'العملاء',
  'customer_categories': 'فئات العملاء',
  'customer_pricing': 'أسعار العملاء',
  'suppliers': 'الموردون',
  'parties': 'الأطراف',
  'sales_reps': 'ممثلي المبيعات',

  // Products & Materials
  'materials': 'المواد',
  'item_groups': 'مجموعات المنتجات',
  'item_units': 'وحدات القياس',
  'managed_units': 'الوحدات المدارة',
  'product_shape_definitions': 'تعاريف أشكال المنتجات',

  // Inventory & Stock
  'inventory_movements': 'حركات المخزون',
  'purchase_orders': 'أوامر الشراء',
  'purchase_returns': 'مرتجعات الشراء',
  'purchase_credit_notes': 'إشعارات دائنة للشراء',

  // Employees & HR
  'employees': 'الموظفون',
  'shift_overrides': 'تجاوزات المناوبة',

  // Currency & Exchange
  'currencies': 'العملات',
  'daily_exchange_rates': 'أسعار الصرف اليومية',
  'exchange_rate_sources': 'مصادر أسعار الصرف',

  // Operations
  'production_reports': 'تقارير الإنتاج',
  'warehouses': 'المستودعات',
  'shipments': 'الشحنات',
  'shipment_sequences': 'تسلسلات الشحنات',

  // System & Technical
  'supplier_payments': 'مدفوعات الموردين',
  'supplier_payment_locks': 'أقفال مدفوعات الموردين',
  'transfer_locks': 'أقفال التحويلات',
  'document_locks': 'أقفال المستندات',
  'settings': 'الإعدادات',
  'data_json_store': 'مخزن البيانات',
  'schema_migrations': 'هجرات قاعدة البيانات',
  'sequence_counters': 'عدادات التسلسل',
  '_sequences': 'التسلسلات',
};

/**
 * Get friendly name for a file/table
 */
export function getFriendlyFileName(technicalName: string): string {
  return fileNameTranslations[technicalName] || technicalName;
}

/**
 * Sort file names with translations
 */
export function sortFileNamesWithTranslations(fileNames: string[]): Array<{ technical: string; friendly: string }> {
  return fileNames
    .map((name) => ({
      technical: name,
      friendly: getFriendlyFileName(name),
    }))
    .sort((a, b) => a.friendly.localeCompare(b.friendly, 'ar'));
}
