feat(folio-core): scope Repository and SqlLedgerStore as @SingleIn(AppScope)

Both are app-wide singletons so the SqlDelight-backed flows remain
shared across the graph.
This commit is contained in:
pj committed 2026-04-26 15:59:57 +07:00
1 parent 4bc8da8ee1
commit 783fb9804e
2 files changed
+6

No files matched your search

@@ -1,9 +1,12 @@
package app.folio.core.data
import app.folio.core.platform.Platform
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import kotlinx.coroutines.flow.StateFlow
@SingleIn(AppScope::class)
@Inject
class Repository(private val store: LedgerStore) {
val accounts: StateFlow<List<Account>> = store.accounts
@@ -5,7 +5,9 @@ import app.cash.sqldelight.coroutines.asFlow
import app.cash.sqldelight.coroutines.mapToList
import app.cash.sqldelight.coroutines.mapToOneOrNull
import app.folio.db.LedgerDatabase
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
@@ -14,6 +16,7 @@ import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.stateIn
@SingleIn(AppScope::class)
@Inject
class SqlLedgerStore(db: LedgerDatabase) : LedgerStore {
private val queries = db.ledgerQueries