/** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.0.1-dev * User agent: apibuilder app.apibuilder.io/poole-solutions/questlog-api/0.0.1-dev/flow_erm_schema */ package solutions.poole.questlog.api.v0.erm import io.flow.event.relation.mapper.schema.ErmSpec import io.apibuilder.spec.v0.models.{Enum, EnumValue, Field, Model, Union, UnionType} import solutions.poole.questlog.api.v0.models.Adventure import solutions.poole.questlog.api.v0.models.Error import solutions.poole.questlog.api.v0.models.Guest import solutions.poole.questlog.api.v0.models.Item import solutions.poole.questlog.api.v0.models.ItemType import solutions.poole.questlog.api.v0.models.Participant import solutions.poole.questlog.api.v0.models.Person import solutions.poole.questlog.api.v0.models.User object GeneratedErmSchema { implicit lazy val ermSpecItem: ErmSpec[Item] = ErmSpec.model( qualifiedName = "solutions.poole.questlog.api.v0.models.item", spec = Model(name = "item", plural = "items", fields = Seq( Field(name = "name", `type` = "string", required = true), Field(name = "size", `type` = "double", required = false), Field(name = "description", `type` = "string", required = false), Field(name = "type", `type` = "item_type", required = false), )), resolved = Map[String, ErmSpec[_]]( "solutions.poole.questlog.api.v0.enums.item_type" -> ermSpecItemType, ), ) implicit lazy val ermSpecParticipant: ErmSpec[Participant] = ErmSpec.model( qualifiedName = "solutions.poole.questlog.api.v0.models.participant", spec = Model(name = "participant", plural = "participants", fields = Seq( Field(name = "person", `type` = "person", required = true), Field(name = "items", `type` = "[item]", required = false), )), resolved = Map[String, ErmSpec[_]]( "solutions.poole.questlog.api.v0.unions.person" -> ermSpecPerson, "solutions.poole.questlog.api.v0.models.item" -> ermSpecItem, ), ) implicit lazy val ermSpecAdventure: ErmSpec[Adventure] = ErmSpec.model( qualifiedName = "solutions.poole.questlog.api.v0.models.adventure", spec = Model(name = "adventure", plural = "adventures", fields = Seq( Field(name = "guid", `type` = "uuid", required = true), Field(name = "name", `type` = "string", required = true), Field(name = "description", `type` = "string", required = false), Field(name = "location", `type` = "string", required = false), Field(name = "participants", `type` = "[participant]", required = false), Field(name = "pack_lists", `type` = "[item]", required = false), )), resolved = Map[String, ErmSpec[_]]( "solutions.poole.questlog.api.v0.models.participant" -> ermSpecParticipant, "solutions.poole.questlog.api.v0.models.item" -> ermSpecItem, ), ) implicit lazy val ermSpecError: ErmSpec[Error] = ErmSpec.model( qualifiedName = "solutions.poole.questlog.api.v0.models.error", spec = Model(name = "error", plural = "errors", fields = Seq( Field(name = "code", `type` = "string", required = true), Field(name = "message", `type` = "string", required = true), )), ) implicit lazy val ermSpecGuest: ErmSpec[Guest] = ErmSpec.model( qualifiedName = "solutions.poole.questlog.api.v0.models.guest", spec = Model(name = "guest", plural = "guests", fields = Seq( Field(name = "email", `type` = "string", required = false), Field(name = "name", `type` = "string", required = false), )), ) implicit lazy val ermSpecUser: ErmSpec[User] = ErmSpec.model( qualifiedName = "solutions.poole.questlog.api.v0.models.user", spec = Model(name = "user", plural = "users", fields = Seq( Field(name = "guid", `type` = "uuid", required = true), Field(name = "email", `type` = "string", required = false), Field(name = "name", `type` = "string", required = false), )), ) implicit lazy val ermSpecPerson: ErmSpec[Person] = ErmSpec.union( qualifiedName = "solutions.poole.questlog.api.v0.unions.person", spec = Union(name = "person", plural = "people", discriminator = Some("discriminator"), types = Seq( UnionType(`type` = "guest", discriminatorValue = Some("guest")), UnionType(`type` = "user", discriminatorValue = Some("user")), )), resolved = Map[String, ErmSpec[_]]( "solutions.poole.questlog.api.v0.models.guest" -> ermSpecGuest, "solutions.poole.questlog.api.v0.models.user" -> ermSpecUser, ), ) implicit lazy val ermSpecItemType: ErmSpec[ItemType] = ErmSpec.`enum`( qualifiedName = "solutions.poole.questlog.api.v0.enums.item_type", spec = Enum(name = "item_type", plural = "item_types", values = Seq( EnumValue(name = "Food"), EnumValue(name = "Clothes"), EnumValue(name = "Camp"), EnumValue(name = "Utensils"), EnumValue(name = "Gear"), )), ) val all: Seq[ErmSpec[_]] = Seq( ermSpecItem, ermSpecParticipant, ermSpecAdventure, ermSpecError, ermSpecGuest, ermSpecUser, ermSpecPerson, ermSpecItemType, ) }