import 'package:equatable/equatable.dart'; import '../../../models/activity.dart'; /// States pour les activités Google Places abstract class GoogleActivityState extends Equatable { const GoogleActivityState(); @override List get props => []; } /// État initial class GoogleActivityInitial extends GoogleActivityState { const GoogleActivityInitial(); } /// État de recherche class GoogleActivitySearching extends GoogleActivityState { const GoogleActivitySearching(); } /// État avec les activités Google chargées class GoogleActivityLoaded extends GoogleActivityState { final List googleActivities; final String? nextPageToken; final bool hasMoreData; final String query; const GoogleActivityLoaded({ required this.googleActivities, this.nextPageToken, required this.hasMoreData, required this.query, }); @override List get props => [googleActivities, nextPageToken, hasMoreData, query]; /// Créer une copie avec des modifications GoogleActivityLoaded copyWith({ List? googleActivities, String? nextPageToken, bool? hasMoreData, String? query, }) { return GoogleActivityLoaded( googleActivities: googleActivities ?? this.googleActivities, nextPageToken: nextPageToken ?? this.nextPageToken, hasMoreData: hasMoreData ?? this.hasMoreData, query: query ?? this.query, ); } } /// État de chargement de plus d'activités (pagination) class GoogleActivityLoadingMore extends GoogleActivityState { final List currentActivities; final String query; const GoogleActivityLoadingMore({ required this.currentActivities, required this.query, }); @override List get props => [currentActivities, query]; } /// État de succès d'opération class GoogleActivityOperationSuccess extends GoogleActivityState { final String message; const GoogleActivityOperationSuccess(this.message); @override List get props => [message]; } /// État d'erreur class GoogleActivityError extends GoogleActivityState { final String message; const GoogleActivityError(this.message); @override List get props => [message]; }