import 'dart:async'; import '../../../users/data/models/user_response.dart'; import 'user_profile_cache_repository.dart'; class SettingsUserCache { final UserProfileCacheRepository _repository; SettingsUserCache(this._repository); UserResponse? _cachedUser; UserResponse? get cachedUser => _cachedUser; Future getProfile({bool forceRefresh = false}) async { final user = await _repository.getProfile(forceRefresh: forceRefresh); _cachedUser = user; return user; } void set(UserResponse user) { _cachedUser = user; unawaited(_repository.setCached(user)); } void invalidate() { _cachedUser = null; unawaited(_repository.invalidate()); } }