rcdbquery/src/commonMain/kotlin/de/pheerai/rcdbquery/dataMappings/Vendor.kt

36 lines
1.4 KiB
Kotlin

package de.pheerai.rcdbquery.dataMappings
enum class Vendor(val prettyName: String, val fullName: String, val queryId: Int) {
INTAMIN("Intamin","Intamin Amusement Rides", 6837),
VEKOMA("Vekoma", 6836),
MACK("Mack Rides", "Mack Rides GmbH & Co KG", 6856),
GERSTLAUER("Gerstlauer", "Gerstlauer Amusement Rides GmbH", 6948),
ZIERER("Zierer", 6861),
MAURER("Maurer", "Maurer Rides GmbH", 6905),
B_AND_M("B&M", "Bolliger & Mabillard", 6831),
SBF_VISA("SBF Visa", "SBF Visa Group", 7028),
ZAMPERLA("Zamperla", 6892),
GCI("GCI", "Great Coasters International", 6860),
RMC("RMC", "Rocky Mountain Construction", 10583)
;
constructor(name: String, queryId: Int) : this(name, name, queryId)
val queryParam
get() = "${queryParamName}=${this.queryId}"
companion object {
const val queryParamName = "mk"
fun createQueryParam(vararg vendors: Vendor) = vendors.joinToString("&") { it.queryParam }
fun createQueryParam(name: String): String = createQueryParam(*searchByName(name).toTypedArray())
fun getByName(name: String): Vendor? = values().firstOrNull { it.prettyName == name }
fun searchByName(name: String): List<Vendor> {
val searchName = name.toLowerCase()
return values().filter {
it.prettyName.toLowerCase().contains(searchName)
}.toList()
}
}
}