diff --git a/composeApp/src/commonMain/kotlin/com/example/mycrib/repository/LookupsRepository.kt b/composeApp/src/commonMain/kotlin/com/example/mycrib/repository/LookupsRepository.kt index d4ed02a..c4e6936 100644 --- a/composeApp/src/commonMain/kotlin/com/example/mycrib/repository/LookupsRepository.kt +++ b/composeApp/src/commonMain/kotlin/com/example/mycrib/repository/LookupsRepository.kt @@ -1,8 +1,10 @@ package com.example.mycrib.repository +import com.example.mycrib.cache.SubscriptionCache import com.example.mycrib.models.* import com.example.mycrib.network.ApiResult import com.example.mycrib.network.LookupsApi +import com.example.mycrib.network.SubscriptionApi import com.example.mycrib.storage.TokenStorage import com.example.mycrib.storage.TaskCacheStorage import kotlinx.coroutines.CoroutineScope @@ -17,6 +19,7 @@ import kotlinx.coroutines.launch */ object LookupsRepository { private val lookupsApi = LookupsApi() + private val subscriptionApi = SubscriptionApi() private val scope = CoroutineScope(Dispatchers.Default) private val _residenceTypes = MutableStateFlow>(emptyList()) @@ -100,6 +103,41 @@ object LookupsRepository { } } } + + // Load subscription status for limitation checks + launch { + println("🔄 [LookupsRepository] Fetching subscription status...") + when (val result = subscriptionApi.getSubscriptionStatus(token)) { + is ApiResult.Success -> { + println("✅ [LookupsRepository] Subscription status loaded: limitationsEnabled=${result.data.limitationsEnabled}") + println(" Limits: ${result.data.limits}") + SubscriptionCache.updateSubscriptionStatus(result.data) + } + is ApiResult.Error -> { + println("❌ [LookupsRepository] Failed to fetch subscription status: ${result.message}") + } + else -> { + println("❌ [LookupsRepository] Unexpected subscription result") + } + } + } + + // Load upgrade triggers for subscription prompts + launch { + println("🔄 [LookupsRepository] Fetching upgrade triggers...") + when (val result = subscriptionApi.getUpgradeTriggers(token)) { + is ApiResult.Success -> { + println("✅ [LookupsRepository] Upgrade triggers loaded: ${result.data.size} triggers") + SubscriptionCache.updateUpgradeTriggers(result.data) + } + is ApiResult.Error -> { + println("❌ [LookupsRepository] Failed to fetch upgrade triggers: ${result.message}") + } + else -> { + println("❌ [LookupsRepository] Unexpected upgrade triggers result") + } + } + } } _isInitialized.value = true @@ -121,6 +159,8 @@ object LookupsRepository { _allTasks.value = emptyList() // Clear disk cache on logout TaskCacheStorage.clearTasks() + // Clear subscription cache on logout + SubscriptionCache.clear() _isInitialized.value = false _isLoading.value = false }