maybe something like this? ``` interface Environme...
# server
t
maybe something like this?
Copy code
interface Environment {
    val adapter: String
    val host: String
    val port: Int
    val username: String
    val password: String
    val database: String
}

class EnvVarEnvironment(val keyPrefix: String) : Environment {
    override val adapter = "mysql"
    override val host = System.getenv("${keyPrefix}DB_HOST")
    override val port = System.getenv("${keyPrefix}DB_PORT").toInt()
    override val username = System.getenv("${keyPrefix}DB_USERNAME")
    override val password = System.getenv("${keyPrefix}DB_PASSWORD")
    override val database = System.getenv("${keyPrefix}DB_NAME")
}

object Development : Environment by EnvVarEnvironment("DEV_")
object Staging: Environment by EnvVarEnvironment("STAGING_")
object Production : Environment by EnvVarEnvironment("")