Kodeindb error, cant access my data object in my viewmodel

69 Views Asked by At

i have a data class for store in db.

@kotlinx.serialization.Serializable
data class SavedCalculation(
    override val id: String,
    val model1: Model1,
    val model2: Model2
):org.kodein.db.model.orm.Metadata {    
}
@kotlinx.serialization.Serializable
data class Model1(
    var attr1: String = "",
    var attr2: String = "",
)
@kotlinx.serialization.Serializable
data class Model2(
    var attr1: String = "",
    var attr2: String = "",
)

if i call my savedCalculation object in my view model;

var saved = mutableStateOf<List<SavedCalculation>>(listOf())
        private set

fun load(){
        viewModelScope.launch {
            useCases.load.invoke().collect { response ->
                when(response){
                    is Response.Loading -> {
                    }
                    is Response.Success -> {
                        saved.value = response.data
                        saved.value[0].model1 -> **this causes error.**
                    }
                    is Response.Error -> {}
                }
            }
        }
    }

Error:

Cannot access 'org.kodein.db.model.orm.HasMetadata' which is a supertype of 'com.myapp.data.model.SavedCalculationDto'. Check your module classpath for missing or conflicting dependencies

1

There are 1 best solutions below

0
On BEST ANSWER

my main and data packages are seperate gradle build files, so kodeindb cant access dependencies from my view model. i simply add same kodeindb dependencies in my build.gradle.kts, my problem solved.

//into viewmodel package gradle file:

implementation("org.kodein.db:kodein-db-jvm:0.8.1-beta")

implementation("org.kodein.db:kodein-db-serializer-kotlinx:0.8.1-beta")

implementation("org.kodein.db:kodein-leveldb-jni-jvm-windows:0.8.1-beta")

implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.2")