package de.krisenvorrat.app.domain.repository

import de.krisenvorrat.app.data.db.entity.SettingsEntity
import de.krisenvorrat.app.domain.model.SettingsKey
import kotlinx.coroutines.flow.Flow

internal interface SettingsRepository {
    suspend fun getValue(key: String): String?
    suspend fun setValue(key: String, value: String)
    fun observeValue(key: String): Flow<String?>
    fun getAll(): Flow<List<SettingsEntity>>

    suspend fun getString(key: SettingsKey.StringKey): String
    suspend fun getStringOrNull(key: SettingsKey.StringKey): String?
    suspend fun setString(key: SettingsKey.StringKey, value: String)
    fun observeString(key: SettingsKey.StringKey): Flow<String>
}
