32 lines
1.1 KiB
Kotlin
32 lines
1.1 KiB
Kotlin
package de.pheerai.rcdbquery.dataMappings
|
|
|
|
import de.pheerai.rcdbquery.dsl.RcdbQueryParamsBuilder
|
|
|
|
@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 RcdbQueryParamsBuilder.searchType(searchType: SearchType): RcdbQueryParamsBuilder =
|
|
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()
|
|
)
|
|
}
|