@startuml

hide empty fields
hide empty methods
legend
|= |= line |
|<back:black>   </back>| inheritance |
|<back:green>   </back>| property reference |
|<back:blue>   </back>| discriminated class |
endlegend
interface StoreKeyReference [[StoreKeyReference.svg]] extends KeyReference {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    key: String
}
interface KeyReference [[KeyReference.svg]]  {
    typeId: [[ReferenceTypeId.svg ReferenceTypeId]]
    key: String
}


interface BusinessUnit [[BusinessUnit.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    key: String
    status: [[BusinessUnitStatus.svg BusinessUnitStatus]]
    stores: [[StoreKeyReference.svg List<StoreKeyReference>]]
    storeMode: [[BusinessUnitStoreMode.svg BusinessUnitStoreMode]]
    unitType: [[BusinessUnitType.svg BusinessUnitType]]
    name: String
    contactEmail: String
    custom: [[CustomFields.svg CustomFields]]
    addresses: [[Address.svg List<Address>]]
    shippingAddressIds: [[String.svg List<String>]]
    defaultShippingAddressId: String
    billingAddressIds: [[String.svg List<String>]]
    defaultBillingAddressId: String
    associateMode: [[BusinessUnitAssociateMode.svg BusinessUnitAssociateMode]]
    associates: [[Associate.svg List<Associate>]]
    inheritedAssociates: [[InheritedAssociate.svg List<InheritedAssociate>]]
    parentUnit: [[BusinessUnitKeyReference.svg BusinessUnitKeyReference]]
    topLevelUnit: [[BusinessUnitKeyReference.svg BusinessUnitKeyReference]]
}
interface CartDiscount [[CartDiscount.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    name: [[LocalizedString.svg LocalizedString]]
    key: String
    description: [[LocalizedString.svg LocalizedString]]
    value: [[CartDiscountValue.svg CartDiscountValue]]
    cartPredicate: String
    target: [[CartDiscountTarget.svg CartDiscountTarget]]
    sortOrder: String
    stores: [[StoreKeyReference.svg List<StoreKeyReference>]]
    isActive: Boolean
    validFrom: DateTime
    validUntil: DateTime
    requiresDiscountCode: Boolean
    references: [[Reference.svg List<Reference>]]
    stackingMode: [[StackingMode.svg StackingMode]]
    custom: [[CustomFields.svg CustomFields]]
}
interface Customer [[Customer.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    key: String
    customerNumber: String
    externalId: String
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    email: String
    password: String
    firstName: String
    lastName: String
    middleName: String
    title: String
    dateOfBirth: Date
    companyName: String
    vatId: String
    addresses: [[Address.svg List<Address>]]
    defaultShippingAddressId: String
    shippingAddressIds: [[String.svg List<String>]]
    defaultBillingAddressId: String
    billingAddressIds: [[String.svg List<String>]]
    isEmailVerified: Boolean
    customerGroup: [[CustomerGroupReference.svg CustomerGroupReference]]
    custom: [[CustomFields.svg CustomFields]]
    locale: String
    salutation: String
    stores: [[StoreKeyReference.svg List<StoreKeyReference>]]
    authenticationMode: [[AuthenticationMode.svg AuthenticationMode]]
}
interface StoreCartDiscountsLimitReachedError [[StoreCartDiscountsLimitReachedError.svg]]  {
    code: String
    message: String
    stores: [[StoreKeyReference.svg List<StoreKeyReference>]]
}
interface GraphQLStoreCartDiscountsLimitReachedError [[GraphQLStoreCartDiscountsLimitReachedError.svg]]  {
    code: String
    stores: [[StoreKeyReference.svg List<StoreKeyReference>]]
}
interface BusinessUnitStoreModeChangedMessage [[BusinessUnitStoreModeChangedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    stores: [[StoreKeyReference.svg List<StoreKeyReference>]]
    storeMode: [[BusinessUnitStoreMode.svg BusinessUnitStoreMode]]
    oldStores: [[StoreKeyReference.svg List<StoreKeyReference>]]
    oldStoreMode: [[BusinessUnitStoreMode.svg BusinessUnitStoreMode]]
}
interface BusinessUnitStoresSetMessage [[BusinessUnitStoresSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    stores: [[StoreKeyReference.svg List<StoreKeyReference>]]
}
interface CartDiscountStoresSetMessage [[CartDiscountStoresSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    stores: [[StoreKeyReference.svg List<StoreKeyReference>]]
}
interface BusinessUnitStoreModeChangedMessagePayload [[BusinessUnitStoreModeChangedMessagePayload.svg]]  {
    type: String
    stores: [[StoreKeyReference.svg List<StoreKeyReference>]]
    storeMode: [[BusinessUnitStoreMode.svg BusinessUnitStoreMode]]
    oldStores: [[StoreKeyReference.svg List<StoreKeyReference>]]
    oldStoreMode: [[BusinessUnitStoreMode.svg BusinessUnitStoreMode]]
}
interface BusinessUnitStoresSetMessagePayload [[BusinessUnitStoresSetMessagePayload.svg]]  {
    type: String
    stores: [[StoreKeyReference.svg List<StoreKeyReference>]]
}
interface CartDiscountStoresSetMessagePayload [[CartDiscountStoresSetMessagePayload.svg]]  {
    type: String
    stores: [[StoreKeyReference.svg List<StoreKeyReference>]]
}
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 BusinessUnitStoreAddedMessage [[BusinessUnitStoreAddedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
}
interface BusinessUnitStoreRemovedMessage [[BusinessUnitStoreRemovedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
}
interface CartDiscountStoreAddedMessage [[CartDiscountStoreAddedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
}
interface CartDiscountStoreRemovedMessage [[CartDiscountStoreRemovedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
}
interface OrderStoreSetMessage [[OrderStoreSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
}
interface ProductTailoringCreatedMessage [[ProductTailoringCreatedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    key: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
    productKey: String
    product: [[ProductReference.svg ProductReference]]
    description: [[LocalizedString.svg LocalizedString]]
    name: [[LocalizedString.svg LocalizedString]]
    slug: [[LocalizedString.svg LocalizedString]]
    published: Boolean
}
interface ProductTailoringDeletedMessage [[ProductTailoringDeletedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
    productKey: String
    product: [[ProductReference.svg ProductReference]]
}
interface ProductTailoringDescriptionSetMessage [[ProductTailoringDescriptionSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
    productKey: String
    product: [[ProductReference.svg ProductReference]]
    description: [[LocalizedString.svg LocalizedString]]
    oldDescription: [[LocalizedString.svg LocalizedString]]
}
interface ProductTailoringNameSetMessage [[ProductTailoringNameSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
    productKey: String
    product: [[ProductReference.svg ProductReference]]
    name: [[LocalizedString.svg LocalizedString]]
    oldName: [[LocalizedString.svg LocalizedString]]
}
interface ProductTailoringPublishedMessage [[ProductTailoringPublishedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
    productKey: String
    product: [[ProductReference.svg ProductReference]]
}
interface ProductTailoringSlugSetMessage [[ProductTailoringSlugSetMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
    productKey: String
    product: [[ProductReference.svg ProductReference]]
    slug: [[LocalizedString.svg LocalizedString]]
    oldSlug: [[LocalizedString.svg LocalizedString]]
}
interface ProductTailoringUnpublishedMessage [[ProductTailoringUnpublishedMessage.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    sequenceNumber: Long
    resource: [[Reference.svg Reference]]
    resourceVersion: Long
    type: String
    resourceUserProvidedIdentifiers: [[UserProvidedIdentifiers.svg UserProvidedIdentifiers]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
    productKey: String
    product: [[ProductReference.svg ProductReference]]
}
interface BusinessUnitStoreAddedMessagePayload [[BusinessUnitStoreAddedMessagePayload.svg]]  {
    type: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
}
interface BusinessUnitStoreRemovedMessagePayload [[BusinessUnitStoreRemovedMessagePayload.svg]]  {
    type: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
}
interface CartDiscountStoreAddedMessagePayload [[CartDiscountStoreAddedMessagePayload.svg]]  {
    type: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
}
interface CartDiscountStoreRemovedMessagePayload [[CartDiscountStoreRemovedMessagePayload.svg]]  {
    type: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
}
interface OrderStoreSetMessagePayload [[OrderStoreSetMessagePayload.svg]]  {
    type: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
}
interface ProductTailoringCreatedMessagePayload [[ProductTailoringCreatedMessagePayload.svg]]  {
    type: String
    key: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
    productKey: String
    product: [[ProductReference.svg ProductReference]]
    description: [[LocalizedString.svg LocalizedString]]
    name: [[LocalizedString.svg LocalizedString]]
    slug: [[LocalizedString.svg LocalizedString]]
    published: Boolean
}
interface ProductTailoringDeletedMessagePayload [[ProductTailoringDeletedMessagePayload.svg]]  {
    type: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
    productKey: String
    product: [[ProductReference.svg ProductReference]]
}
interface ProductTailoringDescriptionSetMessagePayload [[ProductTailoringDescriptionSetMessagePayload.svg]]  {
    type: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
    productKey: String
    product: [[ProductReference.svg ProductReference]]
    description: [[LocalizedString.svg LocalizedString]]
    oldDescription: [[LocalizedString.svg LocalizedString]]
}
interface ProductTailoringNameSetMessagePayload [[ProductTailoringNameSetMessagePayload.svg]]  {
    type: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
    productKey: String
    product: [[ProductReference.svg ProductReference]]
    name: [[LocalizedString.svg LocalizedString]]
    oldName: [[LocalizedString.svg LocalizedString]]
}
interface ProductTailoringPublishedMessagePayload [[ProductTailoringPublishedMessagePayload.svg]]  {
    type: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
    productKey: String
    product: [[ProductReference.svg ProductReference]]
}
interface ProductTailoringSlugSetMessagePayload [[ProductTailoringSlugSetMessagePayload.svg]]  {
    type: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
    productKey: String
    product: [[ProductReference.svg ProductReference]]
    slug: [[LocalizedString.svg LocalizedString]]
    oldSlug: [[LocalizedString.svg LocalizedString]]
}
interface ProductTailoringUnpublishedMessagePayload [[ProductTailoringUnpublishedMessagePayload.svg]]  {
    type: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
    productKey: String
    product: [[ProductReference.svg ProductReference]]
}
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 ProductTailoring [[ProductTailoring.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    key: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
    product: [[ProductReference.svg ProductReference]]
    published: Boolean
    current: [[ProductTailoringData.svg ProductTailoringData]]
    staged: [[ProductTailoringData.svg ProductTailoringData]]
    hasStagedChanges: Boolean
}
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]]
}
interface ShoppingList [[ShoppingList.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    name: [[LocalizedString.svg LocalizedString]]
    key: String
    customer: [[CustomerReference.svg CustomerReference]]
    slug: [[LocalizedString.svg LocalizedString]]
    description: [[LocalizedString.svg LocalizedString]]
    lineItems: [[ShoppingListLineItem.svg List<ShoppingListLineItem>]]
    textLineItems: [[TextLineItem.svg List<TextLineItem>]]
    deleteDaysAfterLastModification: Long
    anonymousId: String
    store: [[StoreKeyReference.svg StoreKeyReference]]
    custom: [[CustomFields.svg CustomFields]]
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
}
interface StagedQuote [[StagedQuote.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    key: String
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    stagedQuoteState: [[StagedQuoteState.svg StagedQuoteState]]
    customer: [[CustomerReference.svg CustomerReference]]
    quoteRequest: [[QuoteRequestReference.svg QuoteRequestReference]]
    quotationCart: [[CartReference.svg CartReference]]
    validTo: DateTime
    sellerComment: String
    custom: [[CustomFields.svg CustomFields]]
    state: [[StateReference.svg StateReference]]
    purchaseOrderNumber: String
    businessUnit: [[BusinessUnitKeyReference.svg BusinessUnitKeyReference]]
    store: [[StoreKeyReference.svg StoreKeyReference]]
}

StoreKeyReference --> BusinessUnit #green;text:green : "stores"
StoreKeyReference --> CartDiscount #green;text:green : "stores"
StoreKeyReference --> Customer #green;text:green : "stores"
StoreKeyReference --> StoreCartDiscountsLimitReachedError #green;text:green : "stores"
StoreKeyReference --> GraphQLStoreCartDiscountsLimitReachedError #green;text:green : "stores"
StoreKeyReference --> BusinessUnitStoreModeChangedMessage #green;text:green : "stores"
StoreKeyReference --> BusinessUnitStoreModeChangedMessage #green;text:green : "oldStores"
StoreKeyReference --> BusinessUnitStoresSetMessage #green;text:green : "stores"
StoreKeyReference --> CartDiscountStoresSetMessage #green;text:green : "stores"
StoreKeyReference --> BusinessUnitStoreModeChangedMessagePayload #green;text:green : "stores"
StoreKeyReference --> BusinessUnitStoreModeChangedMessagePayload #green;text:green : "oldStores"
StoreKeyReference --> BusinessUnitStoresSetMessagePayload #green;text:green : "stores"
StoreKeyReference --> CartDiscountStoresSetMessagePayload #green;text:green : "stores"
StoreKeyReference --> Cart #green;text:green : "store"
StoreKeyReference --> BusinessUnitStoreAddedMessage #green;text:green : "store"
StoreKeyReference --> BusinessUnitStoreRemovedMessage #green;text:green : "store"
StoreKeyReference --> CartDiscountStoreAddedMessage #green;text:green : "store"
StoreKeyReference --> CartDiscountStoreRemovedMessage #green;text:green : "store"
StoreKeyReference --> OrderStoreSetMessage #green;text:green : "store"
StoreKeyReference --> ProductTailoringCreatedMessage #green;text:green : "store"
StoreKeyReference --> ProductTailoringDeletedMessage #green;text:green : "store"
StoreKeyReference --> ProductTailoringDescriptionSetMessage #green;text:green : "store"
StoreKeyReference --> ProductTailoringNameSetMessage #green;text:green : "store"
StoreKeyReference --> ProductTailoringPublishedMessage #green;text:green : "store"
StoreKeyReference --> ProductTailoringSlugSetMessage #green;text:green : "store"
StoreKeyReference --> ProductTailoringUnpublishedMessage #green;text:green : "store"
StoreKeyReference --> BusinessUnitStoreAddedMessagePayload #green;text:green : "store"
StoreKeyReference --> BusinessUnitStoreRemovedMessagePayload #green;text:green : "store"
StoreKeyReference --> CartDiscountStoreAddedMessagePayload #green;text:green : "store"
StoreKeyReference --> CartDiscountStoreRemovedMessagePayload #green;text:green : "store"
StoreKeyReference --> OrderStoreSetMessagePayload #green;text:green : "store"
StoreKeyReference --> ProductTailoringCreatedMessagePayload #green;text:green : "store"
StoreKeyReference --> ProductTailoringDeletedMessagePayload #green;text:green : "store"
StoreKeyReference --> ProductTailoringDescriptionSetMessagePayload #green;text:green : "store"
StoreKeyReference --> ProductTailoringNameSetMessagePayload #green;text:green : "store"
StoreKeyReference --> ProductTailoringPublishedMessagePayload #green;text:green : "store"
StoreKeyReference --> ProductTailoringSlugSetMessagePayload #green;text:green : "store"
StoreKeyReference --> ProductTailoringUnpublishedMessagePayload #green;text:green : "store"
StoreKeyReference --> Order #green;text:green : "store"
StoreKeyReference --> ProductTailoring #green;text:green : "store"
StoreKeyReference --> QuoteRequest #green;text:green : "store"
StoreKeyReference --> Quote #green;text:green : "store"
StoreKeyReference --> ShoppingList #green;text:green : "store"
StoreKeyReference --> StagedQuote #green;text:green : "store"
@enduml
