import 'package:equatable/equatable.dart'; import '../../../models/activity.dart'; /// States pour les activités approuvées par tous les participants abstract class ApprovedActivityState extends Equatable { const ApprovedActivityState(); @override List get props => []; } /// État initial class ApprovedActivityInitial extends ApprovedActivityState { const ApprovedActivityInitial(); } /// État de chargement class ApprovedActivityLoading extends ApprovedActivityState { const ApprovedActivityLoading(); } /// État de recherche class ApprovedActivitySearching extends ApprovedActivityState { const ApprovedActivitySearching(); } /// État avec les activités approuvées chargées class ApprovedActivityLoaded extends ApprovedActivityState { final List approvedActivities; final List tripParticipants; const ApprovedActivityLoaded({ required this.approvedActivities, required this.tripParticipants, }); @override List get props => [approvedActivities, tripParticipants]; /// Créer une copie avec des modifications ApprovedActivityLoaded copyWith({ List? approvedActivities, List? tripParticipants, }) { return ApprovedActivityLoaded( approvedActivities: approvedActivities ?? this.approvedActivities, tripParticipants: tripParticipants ?? this.tripParticipants, ); } } /// État avec résultats de recherche approuvées class ApprovedActivitySearchResults extends ApprovedActivityState { final List results; final String query; final List tripParticipants; const ApprovedActivitySearchResults({ required this.results, required this.query, required this.tripParticipants, }); @override List get props => [results, query, tripParticipants]; } /// État d'erreur class ApprovedActivityError extends ApprovedActivityState { final String message; const ApprovedActivityError(this.message); @override List get props => [message]; }