Files
unionflow-mobile-apps/lib/features/epargne/data/models/compte_epargne_model.dart
dahoud d094d6db9c Initial commit: unionflow-mobile-apps
Application Flutter complète (sans build artifacts).

Signed-off-by: lions dev Team
2026-03-15 16:30:08 +00:00

53 lines
1.7 KiB
Dart

/// Modèle d'un compte épargne (aligné API CompteEpargneResponse).
class CompteEpargneModel {
final String? id;
final String? membreId;
final String? organisationId;
final String? numeroCompte;
final String? typeCompte;
final double soldeActuel;
final double soldeBloque;
final String? statut;
final DateTime? dateOuverture;
final DateTime? dateDerniereTransaction;
final String? description;
const CompteEpargneModel({
this.id,
this.membreId,
this.organisationId,
this.numeroCompte,
this.typeCompte,
this.soldeActuel = 0,
this.soldeBloque = 0,
this.statut,
this.dateOuverture,
this.dateDerniereTransaction,
this.description,
});
factory CompteEpargneModel.fromJson(Map<String, dynamic> json) {
return CompteEpargneModel(
id: json['id']?.toString(),
membreId: json['membreId']?.toString(),
organisationId: json['organisationId']?.toString(),
numeroCompte: json['numeroCompte'] as String?,
typeCompte: json['typeCompte'] as String?,
soldeActuel: _toDouble(json['soldeActuel']),
soldeBloque: _toDouble(json['soldeBloque']),
statut: json['statut'] as String?,
dateOuverture: json['dateOuverture'] != null ? DateTime.tryParse(json['dateOuverture'].toString()) : null,
dateDerniereTransaction: json['dateDerniereTransaction'] != null ? DateTime.tryParse(json['dateDerniereTransaction'].toString()) : null,
description: json['description'] as String?,
);
}
static double _toDouble(dynamic v) {
if (v == null) return 0;
if (v is num) return v.toDouble();
return double.tryParse(v.toString()) ?? 0;
}
double get soldeDisponible => soldeActuel - soldeBloque;
}