Files
unionflow-client-quarkus-pr…/unionflow-mobile-apps/lib/features/events/bloc/evenements_event.dart

151 lines
3.2 KiB
Dart

/// Événements pour le BLoC des événements
library evenements_event;
import 'package:equatable/equatable.dart';
import '../data/models/evenement_model.dart';
/// Classe de base pour tous les événements
abstract class EvenementsEvent extends Equatable {
const EvenementsEvent();
@override
List<Object?> get props => [];
}
/// Événement pour charger la liste des événements
class LoadEvenements extends EvenementsEvent {
final int page;
final int size;
final String? recherche;
final bool refresh;
const LoadEvenements({
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 événement par ID
class LoadEvenementById extends EvenementsEvent {
final String id;
const LoadEvenementById(this.id);
@override
List<Object?> get props => [id];
}
/// Événement pour créer un nouvel événement
class CreateEvenement extends EvenementsEvent {
final EvenementModel evenement;
const CreateEvenement(this.evenement);
@override
List<Object?> get props => [evenement];
}
/// Événement pour mettre à jour un événement
class UpdateEvenement extends EvenementsEvent {
final String id;
final EvenementModel evenement;
const UpdateEvenement(this.id, this.evenement);
@override
List<Object?> get props => [id, evenement];
}
/// Événement pour supprimer un événement
class DeleteEvenement extends EvenementsEvent {
final String id;
const DeleteEvenement(this.id);
@override
List<Object?> get props => [id];
}
/// Événement pour charger les événements à venir
class LoadEvenementsAVenir extends EvenementsEvent {
final int page;
final int size;
const LoadEvenementsAVenir({
this.page = 0,
this.size = 20,
});
@override
List<Object?> get props => [page, size];
}
/// Événement pour charger les événements en cours
class LoadEvenementsEnCours extends EvenementsEvent {
final int page;
final int size;
const LoadEvenementsEnCours({
this.page = 0,
this.size = 20,
});
@override
List<Object?> get props => [page, size];
}
/// Événement pour charger les événements passés
class LoadEvenementsPasses extends EvenementsEvent {
final int page;
final int size;
const LoadEvenementsPasses({
this.page = 0,
this.size = 20,
});
@override
List<Object?> get props => [page, size];
}
/// Événement pour s'inscrire à un événement
class InscrireEvenement extends EvenementsEvent {
final String evenementId;
const InscrireEvenement(this.evenementId);
@override
List<Object?> get props => [evenementId];
}
/// Événement pour se désinscrire d'un événement
class DesinscrireEvenement extends EvenementsEvent {
final String evenementId;
const DesinscrireEvenement(this.evenementId);
@override
List<Object?> get props => [evenementId];
}
/// Événement pour charger les participants
class LoadParticipants extends EvenementsEvent {
final String evenementId;
const LoadParticipants(this.evenementId);
@override
List<Object?> get props => [evenementId];
}
/// Événement pour charger les statistiques
class LoadEvenementsStats extends EvenementsEvent {
const LoadEvenementsStats();
}