- Updated ActivityCard layout for better visual consistency and responsiveness. - Simplified the category badge and adjusted styles for better readability. - Enhanced the voting section with a progress bar and improved button designs. - Added a new method in Activity model to check if all trip participants approved an activity. - Improved error handling and validation in ActivityRepository for voting and fetching activities. - Implemented pagination in ActivityPlacesService for activity searches. - Removed outdated scripts for cleaning up duplicate images.
86 lines
2.0 KiB
Dart
86 lines
2.0 KiB
Dart
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<Object?> 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<Activity> activities;
|
|
final List<String> tripParticipants;
|
|
|
|
const DbActivityLoaded({
|
|
required this.activities,
|
|
required this.tripParticipants,
|
|
});
|
|
|
|
@override
|
|
List<Object?> get props => [activities, tripParticipants];
|
|
|
|
/// Créer une copie avec des modifications
|
|
DbActivityLoaded copyWith({
|
|
List<Activity>? activities,
|
|
List<String>? tripParticipants,
|
|
}) {
|
|
return DbActivityLoaded(
|
|
activities: activities ?? this.activities,
|
|
tripParticipants: tripParticipants ?? this.tripParticipants,
|
|
);
|
|
}
|
|
}
|
|
|
|
/// État avec résultats de recherche
|
|
class DbActivitySearchResults extends DbActivityState {
|
|
final List<Activity> results;
|
|
final String query;
|
|
final List<String> tripParticipants;
|
|
|
|
const DbActivitySearchResults({
|
|
required this.results,
|
|
required this.query,
|
|
required this.tripParticipants,
|
|
});
|
|
|
|
@override
|
|
List<Object?> 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<Object?> get props => [message];
|
|
}
|
|
|
|
/// État d'erreur
|
|
class DbActivityError extends DbActivityState {
|
|
final String message;
|
|
|
|
const DbActivityError(this.message);
|
|
|
|
@override
|
|
List<Object?> get props => [message];
|
|
} |