/// Événements pour le BLoC des cotisations library cotisations_event; import 'package:equatable/equatable.dart'; import '../data/models/cotisation_model.dart'; /// Classe de base pour tous les événements de cotisations abstract class CotisationsEvent extends Equatable { const CotisationsEvent(); @override List get props => []; } /// Charger la liste des cotisations class LoadCotisations extends CotisationsEvent { final int page; final int size; const LoadCotisations({ this.page = 0, this.size = 20, }); @override List get props => [page, size]; } /// Charger une cotisation par ID class LoadCotisationById extends CotisationsEvent { final String id; const LoadCotisationById({required this.id}); @override List get props => [id]; } /// Créer une nouvelle cotisation class CreateCotisation extends CotisationsEvent { final CotisationModel cotisation; const CreateCotisation({required this.cotisation}); @override List get props => [cotisation]; } /// Mettre à jour une cotisation class UpdateCotisation extends CotisationsEvent { final String id; final CotisationModel cotisation; const UpdateCotisation({ required this.id, required this.cotisation, }); @override List get props => [id, cotisation]; } /// Supprimer une cotisation class DeleteCotisation extends CotisationsEvent { final String id; const DeleteCotisation({required this.id}); @override List get props => [id]; } /// Rechercher des cotisations class SearchCotisations extends CotisationsEvent { final String? membreId; final StatutCotisation? statut; final TypeCotisation? type; final int? annee; final int page; final int size; const SearchCotisations({ this.membreId, this.statut, this.type, this.annee, this.page = 0, this.size = 20, }); @override List get props => [membreId, statut, type, annee, page, size]; } /// Charger les cotisations d'un membre class LoadCotisationsByMembre extends CotisationsEvent { final String membreId; final int page; final int size; const LoadCotisationsByMembre({ required this.membreId, this.page = 0, this.size = 20, }); @override List get props => [membreId, page, size]; } /// Charger les cotisations payées class LoadCotisationsPayees extends CotisationsEvent { final int page; final int size; const LoadCotisationsPayees({ this.page = 0, this.size = 20, }); @override List get props => [page, size]; } /// Charger les cotisations non payées class LoadCotisationsNonPayees extends CotisationsEvent { final int page; final int size; const LoadCotisationsNonPayees({ this.page = 0, this.size = 20, }); @override List get props => [page, size]; } /// Charger les cotisations en retard class LoadCotisationsEnRetard extends CotisationsEvent { final int page; final int size; const LoadCotisationsEnRetard({ this.page = 0, this.size = 20, }); @override List get props => [page, size]; } /// Enregistrer un paiement class EnregistrerPaiement extends CotisationsEvent { final String cotisationId; final double montant; final MethodePaiement methodePaiement; final String? numeroPaiement; final String? referencePaiement; final DateTime datePaiement; final String? notes; final String? reference; const EnregistrerPaiement({ required this.cotisationId, required this.montant, required this.methodePaiement, this.numeroPaiement, this.referencePaiement, required this.datePaiement, this.notes, this.reference, }); @override List get props => [ cotisationId, montant, methodePaiement, numeroPaiement, referencePaiement, datePaiement, notes, reference, ]; } /// Charger les statistiques des cotisations class LoadCotisationsStats extends CotisationsEvent { final int? annee; const LoadCotisationsStats({this.annee}); @override List get props => [annee]; } /// Générer les cotisations annuelles class GenererCotisationsAnnuelles extends CotisationsEvent { final int annee; final double montant; final DateTime dateEcheance; const GenererCotisationsAnnuelles({ required this.annee, required this.montant, required this.dateEcheance, }); @override List get props => [annee, montant, dateEcheance]; } /// Envoyer un rappel de paiement class EnvoyerRappelPaiement extends CotisationsEvent { final String cotisationId; const EnvoyerRappelPaiement({required this.cotisationId}); @override List get props => [cotisationId]; }