import 'package:equatable/equatable.dart'; import '../../../models/activity.dart'; /// States pour les activités de la base de données abstract class DbActivityState extends Equatable { const DbActivityState(); @override List get props => []; } /// État initial class DbActivityInitial extends DbActivityState { const DbActivityInitial(); } /// État de chargement class DbActivityLoading extends DbActivityState { const DbActivityLoading(); } /// État de recherche class DbActivitySearching extends DbActivityState { const DbActivitySearching(); } /// État avec les activités chargées class DbActivityLoaded extends DbActivityState { final List activities; final List tripParticipants; const DbActivityLoaded({ required this.activities, required this.tripParticipants, }); @override List get props => [activities, tripParticipants]; /// Créer une copie avec des modifications DbActivityLoaded copyWith({ List? activities, List? tripParticipants, }) { return DbActivityLoaded( activities: activities ?? this.activities, tripParticipants: tripParticipants ?? this.tripParticipants, ); } } /// État avec résultats de recherche class DbActivitySearchResults extends DbActivityState { final List results; final String query; final List tripParticipants; const DbActivitySearchResults({ required this.results, required this.query, required this.tripParticipants, }); @override List get props => [results, query, tripParticipants]; } /// État de succès d'opération class DbActivityOperationSuccess extends DbActivityState { final String message; const DbActivityOperationSuccess(this.message); @override List get props => [message]; } /// État d'erreur class DbActivityError extends DbActivityState { final String message; const DbActivityError(this.message); @override List get props => [message]; }