import 'package:flutter/material.dart';
import 'package:geosector_app/core/constants/app_keys.dart';
import 'package:geosector_app/presentation/widgets/charts/payment_data.dart';

/// Utilitaires pour les paiements et règlements
class PaymentUtils {
  /// Convertit les données de règlement depuis les constantes AppKeys
  ///
  /// [paymentAmounts] est une Map associant l'ID du type de règlement à son montant
  static List<PaymentData> getPaymentDataFromAmounts(
      Map<int, double> paymentAmounts) {
    final List<PaymentData> paymentDataList = [];

    // Parcourir tous les types de règlements définis dans AppKeys
    AppKeys.typesReglements.forEach((typeId, typeData) {
      // Vérifier si nous avons un montant pour ce type de règlement
      final double amount = paymentAmounts[typeId] ?? 0.0;

      // Créer un objet PaymentData pour ce type de règlement
      final PaymentData paymentData = PaymentData(
        typeId: typeId,
        amount: amount,
        color: Color(typeData['couleur'] as int),
        icon: typeData['icon_data'] as IconData,
        title: typeData['titre'] as String,
      );

      paymentDataList.add(paymentData);
    });

    return paymentDataList;
  }
}
