/** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.0.1 * User agent: apibuilder app.apibuilder.io/bml/test-locale/test-locale/latest/bryzek_play_model */ package org.bml.test.locale.v0.models sealed trait Locale extends _root_.scala.Product with _root_.scala.Serializable object Locale { case object EnUS extends Locale { override def toString: String = "en-US" } case object EnGB extends Locale { override def toString: String = "en-GB" } final case class UNDEFINED(description: String) extends Locale { override def toString: String = description } val all: scala.List[Locale] = scala.List(EnUS, EnGB) private val byName: Map[String, Locale] = all.map(x => x.toString.toLowerCase -> x).toMap def apply(value: String): Locale = fromString(value).getOrElse(UNDEFINED(value)) def fromString(value: String): _root_.scala.Option[Locale] = byName.get(value.toLowerCase) } package object json { import play.api.libs.json.* implicit val jsonReadsOrgBmlTestLocaleV0ModelsLocale: play.api.libs.json.Reads[org.bml.test.locale.v0.models.Locale] = new play.api.libs.json.Reads[org.bml.test.locale.v0.models.Locale] { def reads(js: play.api.libs.json.JsValue): play.api.libs.json.JsResult[org.bml.test.locale.v0.models.Locale] = { js.validate[String] match { case play.api.libs.json.JsSuccess(v, _) => play.api.libs.json.JsSuccess(org.bml.test.locale.v0.models.Locale(v)) case err: play.api.libs.json.JsError => err } } } implicit def jsonWritesOrgBmlTestLocaleV0ModelsLocale: play.api.libs.json.Writes[Locale] = { (obj: org.bml.test.locale.v0.models.Locale) => { play.api.libs.json.JsString(obj.toString) } } } sealed trait ValidatedLocale extends _root_.scala.Product with _root_.scala.Serializable { def toLocale: _root_.org.bml.test.locale.v0.models.Locale } object ValidatedLocale { case object EnUS extends ValidatedLocale { override def toString: String = _root_.org.bml.test.locale.v0.models.Locale.EnUS.toString override def toLocale: _root_.org.bml.test.locale.v0.models.Locale = _root_.org.bml.test.locale.v0.models.Locale.EnUS } case object EnGB extends ValidatedLocale { override def toString: String = _root_.org.bml.test.locale.v0.models.Locale.EnGB.toString override def toLocale: _root_.org.bml.test.locale.v0.models.Locale = _root_.org.bml.test.locale.v0.models.Locale.EnGB } val all: scala.List[ValidatedLocale] = scala.List(EnUS, EnGB) def validate(value: _root_.org.bml.test.locale.v0.models.Locale): _root_.cats.data.ValidatedNec[String, ValidatedLocale] = { value match { case _root_.org.bml.test.locale.v0.models.Locale.EnUS => _root_.cats.data.Validated.validNec(ValidatedLocale.EnUS) case _root_.org.bml.test.locale.v0.models.Locale.EnGB => _root_.cats.data.Validated.validNec(ValidatedLocale.EnGB) case _root_.org.bml.test.locale.v0.models.Locale.UNDEFINED(desc) => _root_.cats.data.Validated.invalidNec(s"Invalid value '${desc}' for Locale") } } } package object Bindables { private val locale: generated.binders.Bindable[org.bml.test.locale.v0.models.Locale] = new generated.binders.Bindable[org.bml.test.locale.v0.models.Locale] { override def fromString(value: String): org.bml.test.locale.v0.models.Locale = org.bml.test.locale.v0.models.Locale(value) override def toString(value: org.bml.test.locale.v0.models.Locale): String = value.toString override def example: org.bml.test.locale.v0.models.Locale = org.bml.test.locale.v0.models.Locale.EnUS override def validValues: Seq[org.bml.test.locale.v0.models.Locale] = org.bml.test.locale.v0.models.Locale.all } implicit def pathBindableLocale: _root_.play.api.mvc.PathBindable[org.bml.test.locale.v0.models.Locale] = generated.binders.BasePathBindable(locale) implicit def queryStringBindableLocale: _root_.play.api.mvc.QueryStringBindable[org.bml.test.locale.v0.models.Locale] = generated.binders.BaseQueryStringBindable(locale) }