package com.tt.honeyDue.data import com.tt.honeyDue.models.FeatureBenefit import com.tt.honeyDue.models.Residence import com.tt.honeyDue.models.SubscriptionStatus import com.tt.honeyDue.models.TotalSummary import com.tt.honeyDue.models.User import kotlinx.coroutines.flow.StateFlow /** * Minimal contract covering the [DataManager] surface consumed by Compose screens. * * This interface exists solely so screens can depend on an abstraction that tests, * previews, and the parity-gallery can substitute via [LocalDataManager]. It is * deliberately narrow — only members referenced from the ui/screens package tree * are included. * * ViewModels, [com.tt.honeyDue.network.APILayer], and [PersistenceManager] continue * to use the concrete [DataManager] singleton directly; widening this interface to * cover their surface is explicitly out of scope for the ambient refactor. */ interface IDataManager { /** Observed by [com.tt.honeyDue.ui.screens.ProfileScreen], [com.tt.honeyDue.ui.screens.ResidenceDetailScreen], [com.tt.honeyDue.ui.screens.ResidenceFormScreen]. */ val currentUser: StateFlow /** Observed by [com.tt.honeyDue.ui.screens.ContractorDetailScreen] and the onboarding first-task screen. */ val residences: StateFlow> /** Observed by [com.tt.honeyDue.ui.screens.HomeScreen] and [com.tt.honeyDue.ui.screens.ResidencesScreen]. */ val totalSummary: StateFlow /** Observed by [com.tt.honeyDue.ui.screens.subscription.FeatureComparisonScreen]. */ val featureBenefits: StateFlow> /** Observed by [com.tt.honeyDue.ui.screens.ProfileScreen]. */ val subscription: StateFlow }