/** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.0.1 * User agent: apibuilder app.apibuilder.io/faberoh/order-api/0.0.1/flow_erm_schema */ package com.faberoh.order.api.v0.erm import io.flow.event.relation.mapper.schema.ErmSpec import io.apibuilder.spec.v0.models.{Enum, EnumValue, Field, Model, Union, UnionType} import com.faberoh.order.api.v0.models.Address import com.faberoh.order.api.v0.models.CreditCard import com.faberoh.order.api.v0.models.CreditCardBrand import com.faberoh.order.api.v0.models.Item import com.faberoh.order.api.v0.models.Order import com.faberoh.order.api.v0.models.OrderStatus import com.faberoh.order.api.v0.models.OrderSummary import com.faberoh.order.api.v0.models.User object GeneratedErmSchema { implicit lazy val ermSpecAddress: ErmSpec[Address] = ErmSpec.model( qualifiedName = "com.faberoh.order.api.v0.models.address", spec = Model(name = "address", plural = "addresses", fields = Seq( Field(name = "first_name", `type` = "string", required = true), Field(name = "last_name", `type` = "string", required = true), Field(name = "line1", `type` = "string", required = true), Field(name = "line2", `type` = "string", required = false), Field(name = "zip", `type` = "string", required = true), Field(name = "city", `type` = "string", required = true), Field(name = "state", `type` = "string", required = true), Field(name = "country_code", `type` = "string", required = true), )), ) implicit lazy val ermSpecCreditCard: ErmSpec[CreditCard] = ErmSpec.model( qualifiedName = "com.faberoh.order.api.v0.models.credit_card", spec = Model(name = "credit_card", plural = "credit_cards", fields = Seq( Field(name = "number", `type` = "string", required = true), Field(name = "expiration_month", `type` = "integer", required = true), Field(name = "expiration_year", `type` = "integer", required = true), Field(name = "security_code", `type` = "string", required = true), Field(name = "brand", `type` = "credit_card_brand", required = true), Field(name = "holder_name", `type` = "string", required = true), )), resolved = Map[String, ErmSpec[_]]( "com.faberoh.order.api.v0.enums.credit_card_brand" -> ermSpecCreditCardBrand, ), ) implicit lazy val ermSpecItem: ErmSpec[Item] = ErmSpec.model( qualifiedName = "com.faberoh.order.api.v0.models.item", spec = Model(name = "item", plural = "items", fields = Seq( Field(name = "upc", `type` = "string", required = true), Field(name = "quantity", `type` = "integer", required = true), )), ) implicit lazy val ermSpecUser: ErmSpec[User] = ErmSpec.model( qualifiedName = "com.faberoh.order.api.v0.models.user", spec = Model(name = "user", plural = "users", fields = Seq( Field(name = "id", `type` = "uuid", required = true), Field(name = "email", `type` = "string", required = true), )), ) implicit lazy val ermSpecOrderSummary: ErmSpec[OrderSummary] = ErmSpec.model( qualifiedName = "com.faberoh.order.api.v0.models.order_summary", spec = Model(name = "order_summary", plural = "order_summaries", fields = Seq( Field(name = "items_total", `type` = "integer", required = true), Field(name = "shipping_charge", `type` = "integer", required = true), Field(name = "taxes", `type` = "integer", required = true), Field(name = "total", `type` = "integer", required = true), )), ) implicit lazy val ermSpecOrder: ErmSpec[Order] = ErmSpec.model( qualifiedName = "com.faberoh.order.api.v0.models.order", spec = Model(name = "order", plural = "orders", fields = Seq( Field(name = "id", `type` = "uuid", required = true), Field(name = "user", `type` = "user", required = true), Field(name = "status", `type` = "order_status", required = true), Field(name = "items", `type` = "[item]", required = true), Field(name = "billing_address", `type` = "address", required = true), Field(name = "shipping_address", `type` = "address", required = true), Field(name = "credit_card", `type` = "credit_card", required = true), Field(name = "summary", `type` = "order_summary", required = true), )), resolved = Map[String, ErmSpec[_]]( "com.faberoh.order.api.v0.models.user" -> ermSpecUser, "com.faberoh.order.api.v0.enums.order_status" -> ermSpecOrderStatus, "com.faberoh.order.api.v0.models.item" -> ermSpecItem, "com.faberoh.order.api.v0.models.address" -> ermSpecAddress, "com.faberoh.order.api.v0.models.credit_card" -> ermSpecCreditCard, "com.faberoh.order.api.v0.models.order_summary" -> ermSpecOrderSummary, ), ) implicit lazy val ermSpecCreditCardBrand: ErmSpec[CreditCardBrand] = ErmSpec.`enum`( qualifiedName = "com.faberoh.order.api.v0.enums.credit_card_brand", spec = Enum(name = "credit_card_brand", plural = "credit_card_brands", values = Seq( EnumValue(name = "visa"), EnumValue(name = "mastercard"), EnumValue(name = "amex"), )), ) implicit lazy val ermSpecOrderStatus: ErmSpec[OrderStatus] = ErmSpec.`enum`( qualifiedName = "com.faberoh.order.api.v0.enums.order_status", spec = Enum(name = "order_status", plural = "order_statuses", values = Seq( EnumValue(name = "open"), EnumValue(name = "submitted"), EnumValue(name = "processed"), EnumValue(name = "shipped"), EnumValue(name = "cancelled"), EnumValue(name = "returned"), )), ) val all: Seq[ErmSpec[_]] = Seq( ermSpecAddress, ermSpecCreditCard, ermSpecItem, ermSpecUser, ermSpecOrderSummary, ermSpecOrder, ermSpecCreditCardBrand, ermSpecOrderStatus, ) }