rcdbquery/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/Status.kt

38 lines
1 KiB
Kotlin

package de.pheerai.rcdbquery.dataMappings
import de.pheerai.rcdbquery.dsl.ParamsBuilder
@Suppress("unused")
enum class Status(
override val prettyName: String,
override val fullName: String,
override val paramValue: Int
) : RcdbParamOption<Int> {
SBNO("SBNO", "Standing, but not operating", 311),
OPERATING("Operating", "In operation", 93),
UNDER_CONSTRUCTION("Under Construction", 310),
STORED("Stored", "In storage", 312)
;
constructor(name: String, paramId: Int) : this(name, name, paramId)
companion object {
const val staticParamName = "st"
fun of(input: String) = when(input) {
"SBNO" -> SBNO
"Operating" -> OPERATING
"Under Construction" -> UNDER_CONSTRUCTION
"In Storage" -> STORED
else -> null
}
}
}
fun ParamsBuilder.status(body: StatusBuilder.() -> StatusBuilder): ParamsBuilder {
val builder = StatusBuilder()
builder.body()
this[Status.staticParamName] = builder.build()
return this
}