/// Événements pour le BLoC des membres library membres_event; import 'package:equatable/equatable.dart'; import '../data/models/membre_complete_model.dart'; import '../../../core/models/membre_search_criteria.dart'; /// Classe de base pour tous les événements des membres abstract class MembresEvent extends Equatable { const MembresEvent(); @override List get props => []; } /// Événement pour charger la liste des membres class LoadMembres extends MembresEvent { final int page; final int size; final String? recherche; final bool refresh; const LoadMembres({ this.page = 0, this.size = 20, this.recherche, this.refresh = false, }); @override List get props => [page, size, recherche, refresh]; } /// Événement pour charger un membre par ID class LoadMembreById extends MembresEvent { final String id; const LoadMembreById(this.id); @override List get props => [id]; } /// Événement pour créer un nouveau membre class CreateMembre extends MembresEvent { final MembreCompletModel membre; const CreateMembre(this.membre); @override List get props => [membre]; } /// Événement pour mettre à jour un membre class UpdateMembre extends MembresEvent { final String id; final MembreCompletModel membre; const UpdateMembre(this.id, this.membre); @override List get props => [id, membre]; } /// Événement pour supprimer un membre class DeleteMembre extends MembresEvent { final String id; const DeleteMembre(this.id); @override List get props => [id]; } /// Événement pour activer un membre class ActivateMembre extends MembresEvent { final String id; const ActivateMembre(this.id); @override List get props => [id]; } /// Événement pour désactiver un membre class DeactivateMembre extends MembresEvent { final String id; const DeactivateMembre(this.id); @override List get props => [id]; } /// Événement pour recherche avancée class SearchMembres extends MembresEvent { final MembreSearchCriteria criteria; final int page; final int size; const SearchMembres({ required this.criteria, this.page = 0, this.size = 20, }); @override List get props => [criteria, page, size]; } /// Événement pour charger les membres actifs class LoadActiveMembres extends MembresEvent { final int page; final int size; const LoadActiveMembres({ this.page = 0, this.size = 20, }); @override List get props => [page, size]; } /// Événement pour charger les membres du bureau class LoadBureauMembres extends MembresEvent { final int page; final int size; const LoadBureauMembres({ this.page = 0, this.size = 20, }); @override List get props => [page, size]; } /// Événement pour charger les statistiques class LoadMembresStats extends MembresEvent { const LoadMembresStats(); }