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

177 lines
4.2 KiB
Dart

/// Événements pour le BLoC des organisations
library organizations_event;
import 'package:equatable/equatable.dart';
import '../data/models/organization_model.dart';
/// Classe de base pour tous les événements des organisations
abstract class OrganizationsEvent extends Equatable {
const OrganizationsEvent();
@override
List<Object?> get props => [];
}
/// Événement pour charger la liste des organisations
class LoadOrganizations extends OrganizationsEvent {
final int page;
final int size;
final String? recherche;
final bool refresh;
const LoadOrganizations({
this.page = 0,
this.size = 20,
this.recherche,
this.refresh = false,
});
@override
List<Object?> get props => [page, size, recherche, refresh];
}
/// Événement pour charger plus d'organisations (pagination)
class LoadMoreOrganizations extends OrganizationsEvent {
const LoadMoreOrganizations();
}
/// Événement pour rechercher des organisations
class SearchOrganizations extends OrganizationsEvent {
final String query;
const SearchOrganizations(this.query);
@override
List<Object?> get props => [query];
}
/// Événement pour recherche avancée
class AdvancedSearchOrganizations extends OrganizationsEvent {
final String? nom;
final TypeOrganization? type;
final StatutOrganization? statut;
final String? ville;
final String? region;
final String? pays;
final int page;
final int size;
const AdvancedSearchOrganizations({
this.nom,
this.type,
this.statut,
this.ville,
this.region,
this.pays,
this.page = 0,
this.size = 20,
});
@override
List<Object?> get props => [nom, type, statut, ville, region, pays, page, size];
}
/// Événement pour charger une organisation spécifique
class LoadOrganizationById extends OrganizationsEvent {
final String id;
const LoadOrganizationById(this.id);
@override
List<Object?> get props => [id];
}
/// Événement pour créer une nouvelle organisation
class CreateOrganization extends OrganizationsEvent {
final OrganizationModel organization;
const CreateOrganization(this.organization);
@override
List<Object?> get props => [organization];
}
/// Événement pour mettre à jour une organisation
class UpdateOrganization extends OrganizationsEvent {
final String id;
final OrganizationModel organization;
const UpdateOrganization(this.id, this.organization);
@override
List<Object?> get props => [id, organization];
}
/// Événement pour supprimer une organisation
class DeleteOrganization extends OrganizationsEvent {
final String id;
const DeleteOrganization(this.id);
@override
List<Object?> get props => [id];
}
/// Événement pour activer une organisation
class ActivateOrganization extends OrganizationsEvent {
final String id;
const ActivateOrganization(this.id);
@override
List<Object?> get props => [id];
}
/// Événement pour filtrer les organisations par statut
class FilterOrganizationsByStatus extends OrganizationsEvent {
final StatutOrganization? statut;
const FilterOrganizationsByStatus(this.statut);
@override
List<Object?> get props => [statut];
}
/// Événement pour filtrer les organisations par type
class FilterOrganizationsByType extends OrganizationsEvent {
final TypeOrganization? type;
const FilterOrganizationsByType(this.type);
@override
List<Object?> get props => [type];
}
/// Événement pour trier les organisations
class SortOrganizations extends OrganizationsEvent {
final OrganizationSortType sortType;
final bool ascending;
const SortOrganizations(this.sortType, {this.ascending = true});
@override
List<Object?> get props => [sortType, ascending];
}
/// Événement pour charger les statistiques des organisations
class LoadOrganizationsStats extends OrganizationsEvent {
const LoadOrganizationsStats();
}
/// Événement pour effacer les filtres
class ClearOrganizationsFilters extends OrganizationsEvent {
const ClearOrganizationsFilters();
}
/// Événement pour rafraîchir les données
class RefreshOrganizations extends OrganizationsEvent {
const RefreshOrganizations();
}
/// Événement pour réinitialiser l'état
class ResetOrganizationsState extends OrganizationsEvent {
const ResetOrganizationsState();
}