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

32 lines
1 KiB
Kotlin

package de.pheerai.rcdbquery.dataMappings
import de.pheerai.rcdbquery.dsl.MultiParamsBuilder
@Suppress("unused")
enum class SearchType(
override val prettyName: String,
override val fullName: String,
override val paramValue: Int
) : RcdbParamOption<Int> {
COASTER("Coaster", "Search for Roller Coaster", 2),
AMUSEMENT_PARK("Amusement Parks", "Searh for an amusement park", 3),
COMPANY("Company", "Search for company (manufacturer, engineering,...)", 12),
PERSON("Person", "Search for a person (designer, engineer,...)", 13)
;
companion object {
const val staticParamName = "ot"
}
}
fun MultiParamsBuilder.searchType(searchType: SearchType) =
if (SearchType.staticParamName !in this.keys()) {
also { this[SearchType.staticParamName] = listOf(searchType) }
} else {
error(
"""Only one search type must ever be set
| Old type: ${this[SearchType.staticParamName]!![0].prettyName}
| New type: ${searchType.prettyName}""".trimMargin()
)
}