class EarningsLocalization {
  // English
  static const Map<String, String> en = {
    'myEarnings': 'My Earnings',
    'allEarnings': 'All Earnings',
    'totalEarnings': 'Total Earnings',
    'totalOrders': 'Total Orders',
    'perPage': 'Per Page',
    'orderNumber': 'Order #',
    'pending': 'PENDING',
    'paid': 'PAID',
    'baseFee': 'Base Fee',
    'storePickup': 'Store Pickup',
    'distanceFee': 'Distance Fee',
    'incentive': 'Incentive',
    'total': 'Total',
    'date': 'Date',
    'noEarningsYet': 'No Earnings Yet',
    'completeDeliveriesMessage': 'Complete deliveries to start earning!',
    'errorLoadingEarnings': 'Error Loading Earnings',
    'retry': 'Retry',
    'earningsBreakdown': 'Earnings Breakdown',
    'feeBreakdown': 'Fee Breakdown',
    'earningsByDateRange': 'Earnings by Date Range',
    'weekly': 'Weekly',
    'monthly': 'Monthly',
    'yearly': 'Yearly',
    'pendingEarnings': 'Pending',
    'paidEarnings': 'Paid',
  };

  // Hindi
  static const Map<String, String> hi = {
    'myEarnings': 'मेरी कमाई',
    'totalEarnings': 'कुल कमाई',
    'totalOrders': 'कुल ऑर्डर',
    'perPage': 'प्रति पेज',
    'orderNumber': 'ऑर्डर #',
    'pending': 'लंबित',
    'paid': 'भुगतान किया',
    'baseFee': 'बेस फीस',
    'storePickup': 'स्टोर पिकअप',
    'distanceFee': 'दूरी फीस',
    'incentive': 'प्रोत्साहन',
    'total': 'कुल',
    'date': 'तारीख',
    'noEarningsYet': 'अभी तक कोई कमाई नहीं',
    'completeDeliveriesMessage': 'कमाई शुरू करने के लिए डिलीवरी पूरी करें!',
    'errorLoadingEarnings': 'कमाई लोड करने में त्रुटि',
    'retry': 'पुनः प्रयास करें',
    'earningsBreakdown': 'कमाई का विवरण',
    'feeBreakdown': 'फीस का विवरण',
    'earningsByDateRange': 'तिथि सीमा के अनुसार कमाई',
    'weekly': 'साप्ताहिक',
    'monthly': 'मासिक',
    'yearly': 'वार्षिक',
    'pendingEarnings': 'लंबित',
    'paidEarnings': 'भुगतान किया',
  };

  // Spanish
  static const Map<String, String> es = {
    'myEarnings': 'Mis Ganancias',
    'totalEarnings': 'Ganancias Totales',
    'totalOrders': 'Total de Pedidos',
    'perPage': 'Por Página',
    'orderNumber': 'Pedido #',
    'pending': 'PENDIENTE',
    'paid': 'PAGADO',
    'baseFee': 'Tarifa Base',
    'storePickup': 'Recogida en Tienda',
    'distanceFee': 'Tarifa por Distancia',
    'incentive': 'Incentivo',
    'total': 'Total',
    'date': 'Fecha',
    'noEarningsYet': 'Aún No Hay Ganancias',
    'completeDeliveriesMessage': '¡Completa entregas para empezar a ganar!',
    'errorLoadingEarnings': 'Error al Cargar Ganancias',
    'retry': 'Reintentar',
    'earningsBreakdown': 'Desglose de Ganancias',
    'feeBreakdown': 'Desglose de Tarifas',
    'earningsByDateRange': 'Ganancias por Rango de Fechas',
    'weekly': 'Semanal',
    'monthly': 'Mensual',
    'yearly': 'Anual',
    'pendingEarnings': 'Pendiente',
    'paidEarnings': 'Pagado',
  };

  // French
  static const Map<String, String> fr = {
    'myEarnings': 'Mes Gains',
    'totalEarnings': 'Gains Totaux',
    'totalOrders': 'Total des Commandes',
    'perPage': 'Par Page',
    'orderNumber': 'Commande #',
    'pending': 'EN ATTENTE',
    'paid': 'PAYÉ',
    'baseFee': 'Frais de Base',
    'storePickup': 'Ramassage en Magasin',
    'distanceFee': 'Frais de Distance',
    'incentive': 'Prime',
    'total': 'Total',
    'date': 'Date',
    'noEarningsYet': 'Pas Encore de Gains',
    'completeDeliveriesMessage':
        'Complétez les livraisons pour commencer à gagner !',
    'errorLoadingEarnings': 'Erreur lors du Chargement des Gains',
    'retry': 'Réessayer',
    'earningsBreakdown': 'Répartition des Gains',
    'feeBreakdown': 'Répartition des Frais',
    'earningsByDateRange': 'Gains par Plage de Dates',
    'weekly': 'Hebdomadaire',
    'monthly': 'Mensuel',
    'yearly': 'Annuel',
    'pendingEarnings': 'En Attente',
    'paidEarnings': 'Payé',
  };

  // German
  static const Map<String, String> de = {
    'myEarnings': 'Meine Verdienste',
    'totalEarnings': 'Gesamtverdienste',
    'totalOrders': 'Gesamtbestellungen',
    'perPage': 'Pro Seite',
    'orderNumber': 'Bestellung #',
    'pending': 'AUSSTEHEND',
    'paid': 'BEZAHLT',
    'baseFee': 'Grundgebühr',
    'storePickup': 'Ladenabholung',
    'distanceFee': 'Entfernungsgebühr',
    'incentive': 'Anreiz',
    'total': 'Gesamt',
    'date': 'Datum',
    'noEarningsYet': 'Noch Keine Verdienste',
    'completeDeliveriesMessage':
        'Vervollständigen Sie Lieferungen, um zu verdienen!',
    'errorLoadingEarnings': 'Fehler beim Laden der Verdienste',
    'retry': 'Wiederholen',
    'earningsBreakdown': 'Verdienstaufschlüsselung',
    'feeBreakdown': 'Gebührenaufschlüsselung',
    'earningsByDateRange': 'Verdienste nach Datumsbereich',
    'weekly': 'Wöchentlich',
    'monthly': 'Monatlich',
    'yearly': 'Jährlich',
    'pendingEarnings': 'Ausstehend',
    'paidEarnings': 'Bezahlt',
  };

  // Get localized string based on language code
  static String getString(String key, String languageCode) {
    switch (languageCode.toLowerCase()) {
      case 'hi':
        return hi[key] ?? en[key] ?? key;
      case 'es':
        return es[key] ?? en[key] ?? key;
      case 'fr':
        return fr[key] ?? en[key] ?? key;
      case 'de':
        return de[key] ?? en[key] ?? key;
      default:
        return en[key] ?? key;
    }
  }
}
