/** * Generated by API Builder - https://www.apibuilder.io * Service version: 0.0.2 * User agent: apibuilder app.apibuilder.io/hbc/api-fraud/0.0.2/flow_erm_schema */ package com.hbc.api.fraud.v0.erm import io.flow.event.relation.mapper.schema.ErmSpec import io.apibuilder.spec.v0.models.{Enum, EnumValue, Field, Model, Union, UnionType} import com.hbc.api.fraud.v0.models.AdditionalData import com.hbc.api.fraud.v0.models.Address import com.hbc.api.fraud.v0.models.Banner import com.hbc.api.fraud.v0.models.CreditCard import com.hbc.api.fraud.v0.models.Customer import com.hbc.api.fraud.v0.models.CustomerType import com.hbc.api.fraud.v0.models.DBRecord import com.hbc.api.fraud.v0.models.Decision import com.hbc.api.fraud.v0.models.Error import com.hbc.api.fraud.v0.models.Item import com.hbc.api.fraud.v0.models.Promo import com.hbc.api.fraud.v0.models.RecommendationCode import com.hbc.api.fraud.v0.models.Transaction object GeneratedErmSchema { implicit lazy val ermSpecAdditionalData: ErmSpec[AdditionalData] = ErmSpec.model( qualifiedName = "com.hbc.api.fraud.v0.models.AdditionalData", spec = Model(name = "AdditionalData", plural = "AdditionalDatas", fields = Seq( Field(name = "inAuthId", `type` = "uuid", required = true), )), ) implicit lazy val ermSpecAddress: ErmSpec[Address] = ErmSpec.model( qualifiedName = "com.hbc.api.fraud.v0.models.Address", spec = Model(name = "Address", plural = "Addresses", fields = Seq( Field(name = "name", `type` = "string", required = true), Field(name = "streetLineOne", `type` = "string", required = true), Field(name = "streetLineTwo", `type` = "string", required = false), Field(name = "city", `type` = "string", required = true), Field(name = "state", `type` = "string", required = true), Field(name = "zip", `type` = "string", required = true), Field(name = "country", `type` = "string", required = true), )), ) implicit lazy val ermSpecCreditCard: ErmSpec[CreditCard] = ErmSpec.model( qualifiedName = "com.hbc.api.fraud.v0.models.CreditCard", spec = Model(name = "CreditCard", plural = "CreditCards", fields = Seq( Field(name = "nameOnCard", `type` = "string", required = true), Field(name = "billingAddress", `type` = "Address", required = true), Field(name = "cardType", `type` = "string", required = true), Field(name = "cardNumber", `type` = "string", required = true), Field(name = "authorizedAmount", `type` = "decimal", required = true), Field(name = "fullAmount", `type` = "decimal", required = true), Field(name = "expiryDate", `type` = "string", required = true), Field(name = "authCode", `type` = "string", required = true), Field(name = "responseCode", `type` = "integer", required = true), Field(name = "merchantId", `type` = "integer", required = false), Field(name = "registerNumber", `type` = "string", required = false), Field(name = "transactionNumber", `type` = "string", required = true), Field(name = "avsResponse", `type` = "string", required = true), )), resolved = Map[String, ErmSpec[_]]( "com.hbc.api.fraud.v0.models.Address" -> ermSpecAddress, ), ) implicit lazy val ermSpecCustomer: ErmSpec[Customer] = ErmSpec.model( qualifiedName = "com.hbc.api.fraud.v0.models.Customer", spec = Model(name = "Customer", plural = "Customers", fields = Seq( Field(name = "customerType", `type` = "CustomerType", required = true), Field(name = "accountId", `type` = "string", required = true), Field(name = "creationDate", `type` = "date-iso8601", required = true), Field(name = "firstName", `type` = "string", required = true), Field(name = "lastName", `type` = "string", required = true), Field(name = "emailAddress", `type` = "string", required = true), )), resolved = Map[String, ErmSpec[_]]( "com.hbc.api.fraud.v0.enums.CustomerType" -> ermSpecCustomerType, ), ) implicit lazy val ermSpecPromo: ErmSpec[Promo] = ErmSpec.model( qualifiedName = "com.hbc.api.fraud.v0.models.Promo", spec = Model(name = "Promo", plural = "Promoes", fields = Seq( Field(name = "promotionCode", `type` = "string", required = true), Field(name = "promotionAmount", `type` = "decimal", required = true), )), ) implicit lazy val ermSpecItem: ErmSpec[Item] = ErmSpec.model( qualifiedName = "com.hbc.api.fraud.v0.models.Item", spec = Model(name = "Item", plural = "Items", fields = Seq( Field(name = "svsNumber", `type` = "integer", required = true), Field(name = "skuNumber", `type` = "integer", required = true), Field(name = "upcNumber", `type` = "integer", required = false), Field(name = "classNumber", `type` = "integer", required = false), Field(name = "color", `type` = "string", required = false), Field(name = "size", `type` = "string", required = false), Field(name = "currentStatus", `type` = "string", required = true), Field(name = "department", `type` = "integer", required = true), Field(name = "signOnDelivery", `type` = "string", required = false), Field(name = "giftWrapped", `type` = "boolean", required = false), Field(name = "costAmount", `type` = "decimal", required = false), Field(name = "marginAmount", `type` = "decimal", required = false), Field(name = "description", `type` = "string", required = true), Field(name = "price", `type` = "decimal", required = true), Field(name = "extendedPrice", `type` = "decimal", required = true), Field(name = "quantity", `type` = "integer", required = true), Field(name = "groupNumber", `type` = "integer", required = true), Field(name = "shippingAddress", `type` = "Address", required = true), Field(name = "shippingMethod", `type` = "string", required = true), Field(name = "shippingCountry", `type` = "string", required = true), )), resolved = Map[String, ErmSpec[_]]( "com.hbc.api.fraud.v0.models.Address" -> ermSpecAddress, ), ) implicit lazy val ermSpecTransaction: ErmSpec[Transaction] = ErmSpec.model( qualifiedName = "com.hbc.api.fraud.v0.models.Transaction", spec = Model(name = "Transaction", plural = "Transactions", fields = Seq( Field(name = "orderId", `type` = "string", required = true), Field(name = "groupId", `type` = "string", required = true), Field(name = "orderTotal", `type` = "decimal", required = true), Field(name = "shippingCost", `type` = "decimal", required = true), Field(name = "currencyCode", `type` = "string", required = true), Field(name = "storeNumber", `type` = "integer", required = true), Field(name = "salesRep", `type` = "string", required = false), Field(name = "lastModifiedDate", `type` = "date-iso8601", required = false), Field(name = "banner", `type` = "Banner", required = true), Field(name = "creditCard", `type` = "CreditCard", required = true), Field(name = "promos", `type` = "[Promo]", required = false), Field(name = "items", `type` = "[Item]", required = true), Field(name = "ipAddress", `type` = "string", required = false), Field(name = "source", `type` = "string", required = true), Field(name = "customer", `type` = "Customer", required = true), Field(name = "additionalData", `type` = "AdditionalData", required = false), )), resolved = Map[String, ErmSpec[_]]( "com.hbc.api.fraud.v0.enums.Banner" -> ermSpecBanner, "com.hbc.api.fraud.v0.models.CreditCard" -> ermSpecCreditCard, "com.hbc.api.fraud.v0.models.Promo" -> ermSpecPromo, "com.hbc.api.fraud.v0.models.Item" -> ermSpecItem, "com.hbc.api.fraud.v0.models.Customer" -> ermSpecCustomer, "com.hbc.api.fraud.v0.models.AdditionalData" -> ermSpecAdditionalData, ), ) implicit lazy val ermSpecDecision: ErmSpec[Decision] = ErmSpec.model( qualifiedName = "com.hbc.api.fraud.v0.models.Decision", spec = Model(name = "Decision", plural = "Decisions", fields = Seq( Field(name = "transactionId", `type` = "string", required = true), Field(name = "recommendationCode", `type` = "RecommendationCode", required = true), Field(name = "crossReference", `type` = "uuid", required = false), Field(name = "rulesTripped", `type` = "string", required = false), Field(name = "totalScore", `type` = "integer", required = true), Field(name = "remarks", `type` = "string", required = false), )), resolved = Map[String, ErmSpec[_]]( "com.hbc.api.fraud.v0.enums.RecommendationCode" -> ermSpecRecommendationCode, ), ) implicit lazy val ermSpecDBRecord: ErmSpec[DBRecord] = ErmSpec.model( qualifiedName = "com.hbc.api.fraud.v0.models.DBRecord", spec = Model(name = "DBRecord", plural = "DBRecords", fields = Seq( Field(name = "transactionId", `type` = "string", required = true), Field(name = "lastModifiedDate", `type` = "date-iso8601", required = false), Field(name = "createdDate", `type` = "date-iso8601", required = false), Field(name = "transaction", `type` = "Transaction", required = true), Field(name = "decision", `type` = "Decision", required = true), )), resolved = Map[String, ErmSpec[_]]( "com.hbc.api.fraud.v0.models.Transaction" -> ermSpecTransaction, "com.hbc.api.fraud.v0.models.Decision" -> ermSpecDecision, ), ) implicit lazy val ermSpecError: ErmSpec[Error] = ErmSpec.model( qualifiedName = "com.hbc.api.fraud.v0.models.Error", spec = Model(name = "Error", plural = "Errors", fields = Seq( Field(name = "message", `type` = "string", required = true), Field(name = "error", `type` = "string", required = true), )), ) implicit lazy val ermSpecCustomerType: ErmSpec[CustomerType] = ErmSpec.`enum`( qualifiedName = "com.hbc.api.fraud.v0.enums.CustomerType", spec = Enum(name = "CustomerType", plural = "CustomerTypes", values = Seq( EnumValue(name = "guest"), EnumValue(name = "registered"), EnumValue(name = "employee"), )), ) implicit lazy val ermSpecBanner: ErmSpec[Banner] = ErmSpec.`enum`( qualifiedName = "com.hbc.api.fraud.v0.enums.Banner", spec = Enum(name = "Banner", plural = "Banners", values = Seq( EnumValue(name = "lat"), EnumValue(name = "s5a"), EnumValue(name = "o5a"), EnumValue(name = "bay"), )), ) implicit lazy val ermSpecRecommendationCode: ErmSpec[RecommendationCode] = ErmSpec.`enum`( qualifiedName = "com.hbc.api.fraud.v0.enums.RecommendationCode", spec = Enum(name = "RecommendationCode", plural = "RecommendationCodes", values = Seq( EnumValue(name = "reject"), EnumValue(name = "review"), EnumValue(name = "accept"), )), ) val all: Seq[ErmSpec[_]] = Seq( ermSpecAdditionalData, ermSpecAddress, ermSpecCreditCard, ermSpecCustomer, ermSpecPromo, ermSpecItem, ermSpecTransaction, ermSpecDecision, ermSpecDBRecord, ermSpecError, ermSpecCustomerType, ermSpecBanner, ermSpecRecommendationCode, ) }