feat: basic repo + di

This commit is contained in:
Cilly Leang 2026-01-23 23:15:40 +11:00
parent 1b3b465112
commit 4d8872db9c
Signed by: cilly
GPG key ID: 6500251E087653C9
10 changed files with 185 additions and 22 deletions

View file

@ -0,0 +1,14 @@
package moe.lava.neon.core.di
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.DependencyGraph
import dev.zacsweers.metro.GraphExtension
import dev.zacsweers.metro.SingleIn
import moe.lava.neon.core.repository.AuthRepository
import moe.lava.neon.core.repository.UserRepository
@GraphExtension
interface AppGraph {
val auth: AuthRepository
val users: UserRepository
}

View file

@ -0,0 +1,19 @@
package moe.lava.neon.core.repository
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
@Inject
@SingleIn(AppScope::class)
class AuthRepository {
var token: String? = null
private set
fun login(username: String, password: String) {
// api.login(username, password)
}
suspend fun login(token: String) {
this.token = token
}
}

View file

@ -0,0 +1,10 @@
package moe.lava.neon.core.repository
import dev.zacsweers.metro.AppScope
import dev.zacsweers.metro.Inject
import dev.zacsweers.metro.SingleIn
@Inject
@SingleIn(AppScope::class)
class UserRepository {
}