import 'package:dio/dio.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:relationship_saver/core/auth/secure_token_store.dart'; import 'package:relationship_saver/core/auth/token_store.dart'; import 'package:relationship_saver/core/config/app_config.dart'; import 'package:relationship_saver/core/network/dio_factory.dart'; import 'package:relationship_saver/integrations/backend/backend_gateway.dart'; import 'package:relationship_saver/integrations/backend/backend_gateway_fake.dart'; import 'package:relationship_saver/integrations/backend/backend_gateway_rest.dart'; /// Provides token storage implementation. final Provider tokenStoreProvider = Provider((Ref ref) { return SecureTokenStore(); }); /// Provides configured Dio client for backend transport. final Provider backendDioProvider = Provider((Ref ref) { final TokenStore tokenStore = ref.watch(tokenStoreProvider); return DioFactory.create( baseUrl: AppConfig.backendBaseUrl, tokenStore: tokenStore, ); }); /// Provides backend gateway implementation. final Provider backendGatewayProvider = Provider((Ref ref) { if (AppConfig.useFakeBackend) { return BackendGatewayFake(); } return BackendGatewayRest( dio: ref.watch(backendDioProvider), tokenStore: ref.watch(tokenStoreProvider), ); });