Files
unionflow-server-impl-quarkus/unionflow-mobile-apps/lib/features/members/bloc/membres_event.dart
2025-11-17 16:02:04 +00:00

144 lines
2.9 KiB
Dart

/// Événements pour le BLoC des membres
library membres_event;
import 'package:equatable/equatable.dart';
import '../data/models/membre_complete_model.dart';
import '../../../shared/models/membre_search_criteria.dart';
/// Classe de base pour tous les événements des membres
abstract class MembresEvent extends Equatable {
const MembresEvent();
@override
List<Object?> 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<Object?> 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<Object?> get props => [id];
}
/// Événement pour créer un nouveau membre
class CreateMembre extends MembresEvent {
final MembreCompletModel membre;
const CreateMembre(this.membre);
@override
List<Object?> 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<Object?> get props => [id, membre];
}
/// Événement pour supprimer un membre
class DeleteMembre extends MembresEvent {
final String id;
const DeleteMembre(this.id);
@override
List<Object?> get props => [id];
}
/// Événement pour activer un membre
class ActivateMembre extends MembresEvent {
final String id;
const ActivateMembre(this.id);
@override
List<Object?> get props => [id];
}
/// Événement pour désactiver un membre
class DeactivateMembre extends MembresEvent {
final String id;
const DeactivateMembre(this.id);
@override
List<Object?> 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<Object?> 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<Object?> 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<Object?> get props => [page, size];
}
/// Événement pour charger les statistiques
class LoadMembresStats extends MembresEvent {
const LoadMembresStats();
}