import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/domain/models/album/local_album.model.dart'; import 'package:immich_mobile/domain/models/asset/base_asset.model.dart'; import 'package:immich_mobile/domain/services/local_album.service.dart'; import 'package:immich_mobile/domain/services/remote_album.service.dart'; import 'package:immich_mobile/infrastructure/repositories/local_album.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/remote_album.repository.dart'; import 'package:immich_mobile/providers/infrastructure/db.provider.dart'; import 'package:immich_mobile/providers/infrastructure/remote_album.provider.dart'; final localAlbumRepository = Provider( (ref) => DriftLocalAlbumRepository(ref.watch(driftProvider)), ); final localAlbumServiceProvider = Provider( (ref) => LocalAlbumService(ref.watch(localAlbumRepository)), ); final localAlbumProvider = FutureProvider>( (ref) => LocalAlbumService(ref.watch(localAlbumRepository)).getAll(), ); final localAlbumThumbnailProvider = FutureProvider.family( (ref, albumId) => LocalAlbumService(ref.watch(localAlbumRepository)).getThumbnail(albumId), ); final remoteAlbumRepository = Provider( (ref) => DriftRemoteAlbumRepository(ref.watch(driftProvider)), ); final remoteAlbumServiceProvider = Provider( (ref) => RemoteAlbumService(ref.watch(remoteAlbumRepository)), dependencies: [remoteAlbumRepository], ); final remoteAlbumProvider = NotifierProvider( RemoteAlbumNotifier.new, dependencies: [remoteAlbumServiceProvider], );