import propTypes from 'prop-types'; namespace com.hbc.api.fraud.v0.models { export const additionalData = propTypes.exact({ inAuthId: propTypes.string.isRequired, }); export const promo = propTypes.exact({ promotionCode: propTypes.string.isRequired, promotionAmount: propTypes.number.isRequired, }); } namespace com.hbc.api.fraud.v0.enums { export const banner = propTypes.oneOf(['lat', 's5a', 'o5a', 'bay']); export const recommendationCode = propTypes.oneOf(['reject', 'review', 'accept']); } namespace com.hbc.api.fraud.v0.models { export const decision = propTypes.exact({ transactionId: propTypes.string.isRequired, recommendationCode: com.hbc.api.fraud.v0.enums.recommendationCode.isRequired, crossReference: propTypes.string, rulesTripped: propTypes.string, totalScore: propTypes.number.isRequired, remarks: propTypes.string, }); } namespace com.hbc.api.fraud.v0.enums { export const customerType = propTypes.oneOf(['guest', 'registered', 'employee']); } namespace com.hbc.api.fraud.v0.models { export const customer = propTypes.exact({ customerType: com.hbc.api.fraud.v0.enums.customerType.isRequired, accountId: propTypes.string.isRequired, creationDate: propTypes.string.isRequired, firstName: propTypes.string.isRequired, lastName: propTypes.string.isRequired, emailAddress: propTypes.string.isRequired, }); export const address = propTypes.exact({ name: propTypes.string.isRequired, streetLineOne: propTypes.string.isRequired, streetLineTwo: propTypes.string, city: propTypes.string.isRequired, state: propTypes.string.isRequired, zip: propTypes.string.isRequired, country: propTypes.string.isRequired, }); export const item = propTypes.exact({ svsNumber: propTypes.number.isRequired, skuNumber: propTypes.number.isRequired, upcNumber: propTypes.number, classNumber: propTypes.number, color: propTypes.string, size: propTypes.string, currentStatus: propTypes.string.isRequired, department: propTypes.number.isRequired, signOnDelivery: propTypes.string, giftWrapped: propTypes.bool, costAmount: propTypes.number, marginAmount: propTypes.number, description: propTypes.string.isRequired, price: propTypes.number.isRequired, extendedPrice: propTypes.number.isRequired, quantity: propTypes.number.isRequired, groupNumber: propTypes.number.isRequired, shippingAddress: com.hbc.api.fraud.v0.models.address.isRequired, shippingMethod: propTypes.string.isRequired, shippingCountry: propTypes.string.isRequired, }); export const creditCard = propTypes.exact({ nameOnCard: propTypes.string.isRequired, billingAddress: com.hbc.api.fraud.v0.models.address.isRequired, cardType: propTypes.string.isRequired, cardNumber: propTypes.string.isRequired, authorizedAmount: propTypes.number.isRequired, fullAmount: propTypes.number.isRequired, expiryDate: propTypes.string.isRequired, authCode: propTypes.string.isRequired, responseCode: propTypes.number.isRequired, merchantId: propTypes.number, registerNumber: propTypes.string, transactionNumber: propTypes.string.isRequired, avsResponse: propTypes.string.isRequired, }); export const transaction = propTypes.exact({ orderId: propTypes.string.isRequired, groupId: propTypes.string.isRequired, orderTotal: propTypes.number.isRequired, shippingCost: propTypes.number.isRequired, currencyCode: propTypes.string.isRequired, storeNumber: propTypes.number.isRequired, salesRep: propTypes.string, lastModifiedDate: propTypes.string, banner: com.hbc.api.fraud.v0.enums.banner.isRequired, creditCard: com.hbc.api.fraud.v0.models.creditCard.isRequired, promos: propTypes.arrayOf(com.hbc.api.fraud.v0.models.promo), items: propTypes.arrayOf(com.hbc.api.fraud.v0.models.item).isRequired, ipAddress: propTypes.string, source: propTypes.string.isRequired, customer: com.hbc.api.fraud.v0.models.customer.isRequired, additionalData: com.hbc.api.fraud.v0.models.additionalData, }); export const dbRecord = propTypes.exact({ transactionId: propTypes.string.isRequired, lastModifiedDate: propTypes.string, createdDate: propTypes.string, transaction: com.hbc.api.fraud.v0.models.transaction.isRequired, decision: com.hbc.api.fraud.v0.models.decision.isRequired, }); export const error = propTypes.exact({ message: propTypes.string.isRequired, error: propTypes.string.isRequired, }); } export const additionalData = com.hbc.api.fraud.v0.models.additionalData; export const address = com.hbc.api.fraud.v0.models.address; export const banner = com.hbc.api.fraud.v0.enums.banner; export const creditCard = com.hbc.api.fraud.v0.models.creditCard; export const customer = com.hbc.api.fraud.v0.models.customer; export const customerType = com.hbc.api.fraud.v0.enums.customerType; export const dbRecord = com.hbc.api.fraud.v0.models.dbRecord; export const decision = com.hbc.api.fraud.v0.models.decision; export const error = com.hbc.api.fraud.v0.models.error; export const item = com.hbc.api.fraud.v0.models.item; export const promo = com.hbc.api.fraud.v0.models.promo; export const recommendationCode = com.hbc.api.fraud.v0.enums.recommendationCode; export const transaction = com.hbc.api.fraud.v0.models.transaction;