package ch.ergon.anytask.config import com.charleskorn.kaml.Yaml import kotlinx.serialization.Serializable import java.io.File @Serializable data class Connection( val apiKey: String = "", val baseUrl: String = "http://localhost:31009", ) @Serializable data class Configuration( val connection: Connection = Connection(), val spaceId: String = "", ) fun loadConfig(): Configuration { val yaml = Yaml.default val serializer = Configuration.serializer() // External files take precedence (production use) val externalLocations = listOf( File(System.getProperty("user.home"), ".anytask/anytask.yaml"), File("anytask.yaml"), ) externalLocations.firstOrNull { it.exists() }?.let { return yaml.decodeFromString(serializer, it.readText()) } // Fallback: classpath resource (development) Configuration::class.java.getResourceAsStream("/anytask.yaml")?.let { return yaml.decodeFromString(serializer, it.bufferedReader().readText()) } return Configuration() }