import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../auth/auth_providers.dart'; import 'group_ride_models.dart'; import 'group_ride_service.dart'; /// Provider for GroupRideService. final groupRideServiceProvider = Provider((ref) { return GroupRideService(); }); /// Stream of a specific Group Ride by ID. final groupRideStreamProvider = StreamProvider.family((ref, rideId) { final service = ref.watch(groupRideServiceProvider); return service.groupRideStream(rideId); }); /// Stream of participants for a specific Group Ride. final groupRideParticipantsProvider = StreamProvider.family, String>((ref, rideId) { final service = ref.watch(groupRideServiceProvider); return service.participantsStream(rideId); }); /// Stream of upcoming Group Rides for the current user. final upcomingGroupRidesProvider = StreamProvider>((ref) { final user = ref.watch(currentUserProvider); if (user == null || user.isAnonymous) { return Stream.value([]); } final service = ref.watch(groupRideServiceProvider); return service.upcomingRidesStream(callerUid: user.uid); });