@startuml

hide methods
enum RoundingMode {
    HALF_EVEN
    HALF_UP
    HALF_DOWN
}
interface Cart [[Cart.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    key: String
    customerId: String
    customerEmail: String
    customerGroup: [[CustomerGroupReference.svg CustomerGroupReference]]
    anonymousId: String
    businessUnit: [[BusinessUnitKeyReference.svg BusinessUnitKeyReference]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
    lineItems: [[LineItem.svg List<LineItem>]]
    customLineItems: [[CustomLineItem.svg List<CustomLineItem>]]
    totalLineItemQuantity: Long
    totalPrice: [[CentPrecisionMoney.svg CentPrecisionMoney]]
    taxedPrice: [[TaxedPrice.svg TaxedPrice]]
    taxedShippingPrice: [[TaxedPrice.svg TaxedPrice]]
    discountOnTotalPrice: [[DiscountOnTotalPrice.svg DiscountOnTotalPrice]]
    taxMode: [[TaxMode.svg TaxMode]]
    taxRoundingMode: [[RoundingMode.svg RoundingMode]]
    taxCalculationMode: [[TaxCalculationMode.svg TaxCalculationMode]]
    inventoryMode: [[InventoryMode.svg InventoryMode]]
    cartState: [[CartState.svg CartState]]
    billingAddress: [[Address.svg Address]]
    shippingAddress: [[Address.svg Address]]
    shippingMode: [[ShippingMode.svg ShippingMode]]
    shippingKey: String
    shippingInfo: [[ShippingInfo.svg ShippingInfo]]
    shippingRateInput: [[ShippingRateInput.svg ShippingRateInput]]
    shippingCustomFields: [[CustomFields.svg CustomFields]]
    shipping: [[Shipping.svg List<Shipping>]]
    itemShippingAddresses: [[Address.svg List<Address>]]
    discountCodes: [[DiscountCodeInfo.svg List<DiscountCodeInfo>]]
    directDiscounts: [[DirectDiscount.svg List<DirectDiscount>]]
    refusedGifts: [[CartDiscountReference.svg List<CartDiscountReference>]]
    paymentInfo: [[PaymentInfo.svg PaymentInfo]]
    country: String
    locale: String
    origin: [[CartOrigin.svg CartOrigin]]
    custom: [[CustomFields.svg CustomFields]]
    deleteDaysAfterLastModification: Integer
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
}
interface CartDraft [[CartDraft.svg]]  {
    currency: String
    key: String
    customerId: String
    customerEmail: String
    customerGroup: [[CustomerGroupResourceIdentifier.svg CustomerGroupResourceIdentifier]]
    anonymousId: String
    businessUnit: [[BusinessUnitResourceIdentifier.svg BusinessUnitResourceIdentifier]]
    store: [[StoreResourceIdentifier.svg StoreResourceIdentifier]]
    lineItems: [[LineItemDraft.svg List<LineItemDraft>]]
    customLineItems: [[CustomLineItemDraft.svg List<CustomLineItemDraft>]]
    taxMode: [[TaxMode.svg TaxMode]]
    externalTaxRateForShippingMethod: [[ExternalTaxRateDraft.svg ExternalTaxRateDraft]]
    taxRoundingMode: [[RoundingMode.svg RoundingMode]]
    taxCalculationMode: [[TaxCalculationMode.svg TaxCalculationMode]]
    inventoryMode: [[InventoryMode.svg InventoryMode]]
    billingAddress: [[BaseAddress.svg BaseAddress]]
    shippingAddress: [[BaseAddress.svg BaseAddress]]
    shippingMethod: [[ShippingMethodResourceIdentifier.svg ShippingMethodResourceIdentifier]]
    shippingRateInput: [[ShippingRateInputDraft.svg ShippingRateInputDraft]]
    shippingMode: [[ShippingMode.svg ShippingMode]]
    customShipping: [[CustomShippingDraft.svg List<CustomShippingDraft>]]
    shipping: [[ShippingDraft.svg List<ShippingDraft>]]
    itemShippingAddresses: [[BaseAddress.svg List<BaseAddress>]]
    discountCodes: [[String.svg List<String>]]
    country: String
    locale: String
    origin: [[CartOrigin.svg CartOrigin]]
    deleteDaysAfterLastModification: Long
    custom: [[CustomFieldsDraft.svg CustomFieldsDraft]]
}
interface CartChangeTaxRoundingModeAction [[CartChangeTaxRoundingModeAction.svg]]  {
    action: String
    taxRoundingMode: [[RoundingMode.svg RoundingMode]]
}
interface StagedOrderChangeTaxRoundingModeAction [[StagedOrderChangeTaxRoundingModeAction.svg]]  {
    action: String
    taxRoundingMode: [[RoundingMode.svg RoundingMode]]
}
interface Order [[Order.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    orderNumber: String
    purchaseOrderNumber: String
    customerId: String
    customerEmail: String
    customerGroup: [[CustomerGroupReference.svg CustomerGroupReference]]
    anonymousId: String
    businessUnit: [[BusinessUnitKeyReference.svg BusinessUnitKeyReference]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
    lineItems: [[LineItem.svg List<LineItem>]]
    customLineItems: [[CustomLineItem.svg List<CustomLineItem>]]
    totalPrice: [[TypedMoney.svg TypedMoney]]
    taxedPrice: [[TaxedPrice.svg TaxedPrice]]
    taxedShippingPrice: [[TaxedPrice.svg TaxedPrice]]
    discountOnTotalPrice: [[DiscountOnTotalPrice.svg DiscountOnTotalPrice]]
    taxMode: [[TaxMode.svg TaxMode]]
    taxRoundingMode: [[RoundingMode.svg RoundingMode]]
    taxCalculationMode: [[TaxCalculationMode.svg TaxCalculationMode]]
    inventoryMode: [[InventoryMode.svg InventoryMode]]
    billingAddress: [[Address.svg Address]]
    shippingAddress: [[Address.svg Address]]
    shippingMode: [[ShippingMode.svg ShippingMode]]
    shippingKey: String
    shippingInfo: [[ShippingInfo.svg ShippingInfo]]
    shippingRateInput: [[ShippingRateInput.svg ShippingRateInput]]
    shippingCustomFields: [[CustomFields.svg CustomFields]]
    shipping: [[Shipping.svg List<Shipping>]]
    itemShippingAddresses: [[Address.svg List<Address>]]
    discountCodes: [[DiscountCodeInfo.svg List<DiscountCodeInfo>]]
    directDiscounts: [[DirectDiscount.svg List<DirectDiscount>]]
    refusedGifts: [[CartDiscountReference.svg List<CartDiscountReference>]]
    paymentInfo: [[PaymentInfo.svg PaymentInfo]]
    country: String
    locale: String
    origin: [[CartOrigin.svg CartOrigin]]
    cart: [[CartReference.svg CartReference]]
    quote: [[QuoteReference.svg QuoteReference]]
    orderState: [[OrderState.svg OrderState]]
    shipmentState: [[ShipmentState.svg ShipmentState]]
    paymentState: [[PaymentState.svg PaymentState]]
    state: [[StateReference.svg StateReference]]
    syncInfo: [[SyncInfo.svg List<SyncInfo>]]
    returnInfo: [[ReturnInfo.svg List<ReturnInfo>]]
    lastMessageSequenceNumber: Long
    custom: [[CustomFields.svg CustomFields]]
    completedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
}
interface OrderImportDraft [[OrderImportDraft.svg]]  {
    orderNumber: String
    purchaseOrderNumber: String
    customerId: String
    customerEmail: String
    customerGroup: [[CustomerGroupResourceIdentifier.svg CustomerGroupResourceIdentifier]]
    businessUnit: [[BusinessUnitResourceIdentifier.svg BusinessUnitResourceIdentifier]]
    store: [[StoreResourceIdentifier.svg StoreResourceIdentifier]]
    lineItems: [[LineItemImportDraft.svg List<LineItemImportDraft>]]
    customLineItems: [[CustomLineItemImportDraft.svg List<CustomLineItemImportDraft>]]
    totalPrice: [[Money.svg Money]]
    taxedPrice: [[TaxedPriceDraft.svg TaxedPriceDraft]]
    taxRoundingMode: [[RoundingMode.svg RoundingMode]]
    taxCalculationMode: [[TaxCalculationMode.svg TaxCalculationMode]]
    inventoryMode: [[InventoryMode.svg InventoryMode]]
    billingAddress: [[BaseAddress.svg BaseAddress]]
    shippingAddress: [[BaseAddress.svg BaseAddress]]
    itemShippingAddresses: [[BaseAddress.svg List<BaseAddress>]]
    shippingInfo: [[ShippingInfoImportDraft.svg ShippingInfoImportDraft]]
    paymentInfo: [[PaymentInfo.svg PaymentInfo]]
    paymentState: [[PaymentState.svg PaymentState]]
    shipmentState: [[ShipmentState.svg ShipmentState]]
    orderState: [[OrderState.svg OrderState]]
    state: [[StateReference.svg StateReference]]
    country: String
    origin: [[CartOrigin.svg CartOrigin]]
    completedAt: DateTime
    custom: [[CustomFieldsDraft.svg CustomFieldsDraft]]
}
interface QuoteRequest [[QuoteRequest.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    key: String
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    quoteRequestState: [[QuoteRequestState.svg QuoteRequestState]]
    comment: String
    customer: [[CustomerReference.svg CustomerReference]]
    customerGroup: [[CustomerGroupReference.svg CustomerGroupReference]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
    lineItems: [[LineItem.svg List<LineItem>]]
    customLineItems: [[CustomLineItem.svg List<CustomLineItem>]]
    totalPrice: [[TypedMoney.svg TypedMoney]]
    taxedPrice: [[TaxedPrice.svg TaxedPrice]]
    shippingAddress: [[Address.svg Address]]
    billingAddress: [[Address.svg Address]]
    inventoryMode: [[InventoryMode.svg InventoryMode]]
    taxMode: [[TaxMode.svg TaxMode]]
    taxRoundingMode: [[RoundingMode.svg RoundingMode]]
    taxCalculationMode: [[TaxCalculationMode.svg TaxCalculationMode]]
    country: String
    shippingInfo: [[ShippingInfo.svg ShippingInfo]]
    paymentInfo: [[PaymentInfo.svg PaymentInfo]]
    shippingRateInput: [[ShippingRateInput.svg ShippingRateInput]]
    itemShippingAddresses: [[Address.svg List<Address>]]
    directDiscounts: [[DirectDiscount.svg List<DirectDiscount>]]
    custom: [[CustomFields.svg CustomFields]]
    state: [[StateReference.svg StateReference]]
    purchaseOrderNumber: String
    cart: [[CartReference.svg CartReference]]
    businessUnit: [[BusinessUnitKeyReference.svg BusinessUnitKeyReference]]
}
interface Quote [[Quote.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    key: String
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    quoteRequest: [[QuoteRequestReference.svg QuoteRequestReference]]
    stagedQuote: [[StagedQuoteReference.svg StagedQuoteReference]]
    customer: [[CustomerReference.svg CustomerReference]]
    customerGroup: [[CustomerGroupReference.svg CustomerGroupReference]]
    validTo: DateTime
    sellerComment: String
    buyerComment: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
    lineItems: [[LineItem.svg List<LineItem>]]
    customLineItems: [[CustomLineItem.svg List<CustomLineItem>]]
    totalPrice: [[TypedMoney.svg TypedMoney]]
    taxedPrice: [[TaxedPrice.svg TaxedPrice]]
    shippingAddress: [[Address.svg Address]]
    billingAddress: [[Address.svg Address]]
    inventoryMode: [[InventoryMode.svg InventoryMode]]
    taxMode: [[TaxMode.svg TaxMode]]
    taxRoundingMode: [[RoundingMode.svg RoundingMode]]
    taxCalculationMode: [[TaxCalculationMode.svg TaxCalculationMode]]
    country: String
    shippingInfo: [[ShippingInfo.svg ShippingInfo]]
    paymentInfo: [[PaymentInfo.svg PaymentInfo]]
    shippingRateInput: [[ShippingRateInput.svg ShippingRateInput]]
    itemShippingAddresses: [[Address.svg List<Address>]]
    directDiscounts: [[DirectDiscount.svg List<DirectDiscount>]]
    custom: [[CustomFields.svg CustomFields]]
    quoteState: [[QuoteState.svg QuoteState]]
    state: [[StateReference.svg StateReference]]
    purchaseOrderNumber: String
    businessUnit: [[BusinessUnitKeyReference.svg BusinessUnitKeyReference]]
}
RoundingMode --> Cart #green;text:green : "taxRoundingMode"
RoundingMode --> CartDraft #green;text:green : "taxRoundingMode"
RoundingMode --> CartChangeTaxRoundingModeAction #green;text:green : "taxRoundingMode"
RoundingMode --> StagedOrderChangeTaxRoundingModeAction #green;text:green : "taxRoundingMode"
RoundingMode --> Order #green;text:green : "taxRoundingMode"
RoundingMode --> OrderImportDraft #green;text:green : "taxRoundingMode"
RoundingMode --> QuoteRequest #green;text:green : "taxRoundingMode"
RoundingMode --> Quote #green;text:green : "taxRoundingMode"
@enduml
