144 lines
2.9 KiB
Dart
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 '../../../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<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();
|
|
}
|
|
|