import 'package:flutter/material.dart'; /// Modèle de données pour représenter un passage avec sa date, son type et son nombre class PassageData { /// Date du passage final DateTime date; /// Identifiant du type de passage (1: Effectué, 2: À finaliser, 3: Refusé, etc.) final int typeId; /// Nombre de passages final int count; /// Couleur associée au type de passage final Color color; /// Icône associée au type de passage (chemin vers le fichier d'icône) final String iconPath; /// Titre du type de passage final String title; const PassageData({ required this.date, required this.typeId, required this.count, required this.color, required this.iconPath, required this.title, }); /// Crée une instance de PassageData à partir d'une date au format ISO 8601 factory PassageData.fromIsoDate({ required String isoDate, required int typeId, required int count, required Color color, required String iconPath, required String title, }) { return PassageData( date: DateTime.parse(isoDate), typeId: typeId, count: count, color: color, iconPath: iconPath, title: title, ); } } /// Modèle de données pour représenter un règlement avec sa date, son type et son montant class PaymentAmountData { /// Date du règlement final DateTime date; /// Identifiant du type de règlement (1: Espèces, 2: Chèques, 3: CB) final int typeId; /// Montant du règlement final double amount; /// Couleur associée au type de règlement final Color color; /// Icône associée au type de règlement (chemin vers le fichier d'icône ou IconData) final dynamic iconData; /// Titre du type de règlement final String title; /// Crée une instance de PaymentAmountData à partir d'une date au format ISO 8601 factory PaymentAmountData.fromIsoDate({ required String isoDate, required int typeId, required double amount, required Color color, required dynamic iconData, required String title, }) { return PaymentAmountData( date: DateTime.parse(isoDate), typeId: typeId, amount: amount, color: color, iconData: iconData, title: title, ); } const PaymentAmountData({ required this.date, required this.typeId, required this.amount, required this.color, required this.iconData, required this.title, }); }