P0: IDataManager coverage gaps — contractorDetail/documentDetail/taskCompletions/contractorsByResidence
Adds 4 new StateFlow members to IDataManager + DataManager + InMemoryDataManager + FixtureDataManager: - contractorDetail: Map<Int, Contractor> — cached detail fetches - documentDetail: Map<Int, Document> - taskCompletions: Map<Int, List<TaskCompletionResponse>> - contractorsByResidence: Map<Int, List<ContractorSummary>> APILayer now writes to these on successful detail/per-residence fetches: - getTaskCompletions -> setTaskCompletions - getDocument -> setDocumentDetail - getContractor -> setContractorDetail - getContractorsByResidence -> setContractorsForResidence Fixture populated() seeds contractorDetail + contractorsByResidence. Populated taskCompletions is empty (Fixtures doesn't define any completions yet). Foundation for P1 — VMs can now derive every read-state from DataManager reactively instead of owning independent MutableStateFlow fields. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -82,7 +82,13 @@ object FixtureDataManager {
|
||||
},
|
||||
documents = Fixtures.documents,
|
||||
documentsByResidence = Fixtures.documentsByResidence,
|
||||
documentDetail = Fixtures.documents.associateBy { it.id ?: 0 }.filterKeys { it != 0 },
|
||||
contractors = Fixtures.contractorSummaries,
|
||||
contractorsByResidence = Fixtures.residences.associate { r ->
|
||||
r.id to Fixtures.contractorSummaries.filter { it.residenceId == r.id }
|
||||
},
|
||||
contractorDetail = Fixtures.contractors.associateBy { it.id },
|
||||
taskCompletions = emptyMap(), // Fixtures doesn't define task completions; leave empty
|
||||
subscription = Fixtures.premiumSubscription,
|
||||
upgradeTriggers = emptyMap(),
|
||||
featureBenefits = Fixtures.featureBenefits,
|
||||
|
||||
Reference in New Issue
Block a user