feat: Add geocoding functionality for trips and enhance activity search with coordinates

This commit is contained in:
Dayron
2025-11-04 20:47:26 +01:00
parent f6c8432335
commit 9cb21c3470
9 changed files with 421 additions and 56 deletions

View File

@@ -39,6 +39,8 @@ class GoogleActivityBloc extends Bloc<GoogleActivityEvent, GoogleActivityState>
final result = await _placesService.searchActivitiesPaginated(
destination: event.destination,
latitude: event.latitude,
longitude: event.longitude,
tripId: event.tripId,
category: event.category,
pageSize: 6,
@@ -74,6 +76,8 @@ class GoogleActivityBloc extends Bloc<GoogleActivityEvent, GoogleActivityState>
final result = await _placesService.searchActivitiesPaginated(
destination: event.destination,
latitude: event.latitude,
longitude: event.longitude,
tripId: event.tripId,
category: event.category,
pageSize: 6,
@@ -143,6 +147,8 @@ class GoogleActivityBloc extends Bloc<GoogleActivityEvent, GoogleActivityState>
add(LoadGoogleActivities(
tripId: event.tripId,
destination: event.destination,
latitude: event.latitude,
longitude: event.longitude,
category: event.category,
));
}

View File

@@ -12,35 +12,43 @@ abstract class GoogleActivityEvent extends Equatable {
/// Charger les activités Google Places
class LoadGoogleActivities extends GoogleActivityEvent {
final String tripId;
final String destination;
final String? destination;
final double? latitude;
final double? longitude;
final ActivityCategory? category;
const LoadGoogleActivities({
required this.tripId,
required this.destination,
this.destination,
this.latitude,
this.longitude,
this.category,
});
@override
List<Object?> get props => [tripId, destination, category];
List<Object?> get props => [tripId, destination, latitude, longitude, category];
}
/// Charger plus d'activités Google (pagination)
class LoadMoreGoogleActivities extends GoogleActivityEvent {
final String tripId;
final String destination;
final String? destination;
final double? latitude;
final double? longitude;
final ActivityCategory? category;
final String? nextPageToken;
const LoadMoreGoogleActivities({
required this.tripId,
required this.destination,
this.destination,
this.latitude,
this.longitude,
this.category,
this.nextPageToken,
});
@override
List<Object?> get props => [tripId, destination, category, nextPageToken];
List<Object?> get props => [tripId, destination, latitude, longitude, category, nextPageToken];
}
/// Mettre à jour les activités Google
@@ -74,17 +82,21 @@ class AddGoogleActivityToDb extends GoogleActivityEvent {
/// Rechercher des activités Google par catégorie
class SearchGoogleActivitiesByCategory extends GoogleActivityEvent {
final String tripId;
final String destination;
final String? destination;
final double? latitude;
final double? longitude;
final ActivityCategory category;
const SearchGoogleActivitiesByCategory({
required this.tripId,
required this.destination,
this.destination,
this.latitude,
this.longitude,
required this.category,
});
@override
List<Object?> get props => [tripId, destination, category];
List<Object?> get props => [tripId, destination, latitude, longitude, category];
}
/// Effacer les résultats Google