feat(wip): implement trip persistence through a local repository. Include loaded trips in the start page UI

This commit is contained in:
2025-12-30 00:51:40 +01:00
parent 81ed2fd8c3
commit 014b48591e
28 changed files with 2395 additions and 387 deletions

View File

@@ -1,11 +1,12 @@
import 'package:anyway/core/dio_client.dart';
import 'package:anyway/data/repositories/local_onboarding_repository.dart';
import 'package:anyway/domain/repositories/onboarding_repository.dart';
import 'package:anyway/domain/repositories/trip_repository.dart';
import 'package:anyway/data/repositories/backend_trip_repository.dart';
import 'package:anyway/data/datasources/trip_local_datasource.dart';
import 'package:anyway/data/datasources/trip_remote_datasource.dart';
import 'package:anyway/data/repositories/backend_trip_repository.dart';
import 'package:anyway/data/repositories/local_onboarding_repository.dart';
import 'package:anyway/data/repositories/preferences_repository_impl.dart';
import 'package:anyway/domain/repositories/onboarding_repository.dart';
import 'package:anyway/domain/repositories/preferences_repository.dart';
import 'package:anyway/domain/repositories/trip_repository.dart';
import 'dart:io';
import 'package:dio/dio.dart';
@@ -25,12 +26,6 @@ final dioProvider = Provider<Dio>((ref) {
));
});
/// Provide a simple wrapper client if needed elsewhere
final dioClientProvider = Provider<DioClient>((ref) {
final dio = ref.read(dioProvider);
return DioClient(baseUrl: dio.options.baseUrl);
});
/// Onboarding repository backed by SharedPreferences
final onboardingRepositoryProvider = Provider<OnboardingRepository>((ref) {
return LocalOnboardingRepository();
@@ -45,5 +40,6 @@ final preferencesRepositoryProvider = Provider<PreferencesRepository>((ref) {
final tripRepositoryProvider = Provider<TripRepository>((ref) {
final dio = ref.read(dioProvider);
final remote = TripRemoteDataSourceImpl(dio: dio);
return BackendTripRepository(remote: remote);
final local = TripLocalDataSourceImpl();
return BackendTripRepository(remote: remote, local: local);
});