@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 ItemShippingDetailsDraft [[ItemShippingDetailsDraft.svg]]  {
    targets: [[ItemShippingTarget.svg List<ItemShippingTarget>]]
}



interface CustomLineItemDraft [[CustomLineItemDraft.svg]]  {
    name: [[LocalizedString.svg LocalizedString]]
    key: String
    quantity: Long
    money: [[Money.svg Money]]
    slug: String
    taxCategory: [[TaxCategoryResourceIdentifier.svg TaxCategoryResourceIdentifier]]
    externalTaxRate: [[ExternalTaxRateDraft.svg ExternalTaxRateDraft]]
    custom: [[CustomFieldsDraft.svg CustomFieldsDraft]]
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
    priceMode: [[CustomLineItemPriceMode.svg CustomLineItemPriceMode]]
}
interface LineItemDraft [[LineItemDraft.svg]]  {
    key: String
    productId: String
    variantId: Long
    sku: String
    quantity: Long
    addedAt: DateTime
    distributionChannel: [[ChannelResourceIdentifier.svg ChannelResourceIdentifier]]
    supplyChannel: [[ChannelResourceIdentifier.svg ChannelResourceIdentifier]]
    externalPrice: [[Money.svg Money]]
    externalTotalPrice: [[ExternalLineItemTotalPrice.svg ExternalLineItemTotalPrice]]
    externalTaxRate: [[ExternalTaxRateDraft.svg ExternalTaxRateDraft]]
    inventoryMode: [[InventoryMode.svg InventoryMode]]
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
    custom: [[CustomFieldsDraft.svg CustomFieldsDraft]]
}
interface CartAddCustomLineItemAction [[CartAddCustomLineItemAction.svg]]  {
    action: String
    money: [[Money.svg Money]]
    name: [[LocalizedString.svg LocalizedString]]
    key: String
    quantity: Long
    slug: String
    taxCategory: [[TaxCategoryResourceIdentifier.svg TaxCategoryResourceIdentifier]]
    externalTaxRate: [[ExternalTaxRateDraft.svg ExternalTaxRateDraft]]
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
    custom: [[CustomFieldsDraft.svg CustomFieldsDraft]]
    priceMode: [[CustomLineItemPriceMode.svg CustomLineItemPriceMode]]
}
interface CartAddLineItemAction [[CartAddLineItemAction.svg]]  {
    action: String
    key: String
    productId: String
    variantId: Long
    sku: String
    quantity: Long
    addedAt: DateTime
    distributionChannel: [[ChannelResourceIdentifier.svg ChannelResourceIdentifier]]
    supplyChannel: [[ChannelResourceIdentifier.svg ChannelResourceIdentifier]]
    externalPrice: [[Money.svg Money]]
    externalTotalPrice: [[ExternalLineItemTotalPrice.svg ExternalLineItemTotalPrice]]
    externalTaxRate: [[ExternalTaxRateDraft.svg ExternalTaxRateDraft]]
    inventoryMode: [[InventoryMode.svg InventoryMode]]
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
    custom: [[CustomFieldsDraft.svg CustomFieldsDraft]]
}
interface CartRemoveLineItemAction [[CartRemoveLineItemAction.svg]]  {
    action: String
    lineItemId: String
    lineItemKey: String
    quantity: Long
    externalPrice: [[Money.svg Money]]
    externalTotalPrice: [[ExternalLineItemTotalPrice.svg ExternalLineItemTotalPrice]]
    shippingDetailsToRemove: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
}
interface CartSetCustomLineItemShippingDetailsAction [[CartSetCustomLineItemShippingDetailsAction.svg]]  {
    action: String
    customLineItemId: String
    customLineItemKey: String
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
}
interface CartSetLineItemShippingDetailsAction [[CartSetLineItemShippingDetailsAction.svg]]  {
    action: String
    lineItemId: String
    lineItemKey: String
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
}
interface MyLineItemDraft [[MyLineItemDraft.svg]]  {
    key: String
    productId: String
    variantId: Long
    sku: String
    quantity: Long
    addedAt: DateTime
    supplyChannel: [[ChannelResourceIdentifier.svg ChannelResourceIdentifier]]
    distributionChannel: [[ChannelResourceIdentifier.svg ChannelResourceIdentifier]]
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
    custom: [[CustomFieldsDraft.svg CustomFieldsDraft]]
}
interface MyCartAddLineItemAction [[MyCartAddLineItemAction.svg]]  {
    action: String
    key: String
    productId: String
    variantId: Long
    sku: String
    quantity: Long
    addedAt: DateTime
    distributionChannel: [[ChannelResourceIdentifier.svg ChannelResourceIdentifier]]
    supplyChannel: [[ChannelResourceIdentifier.svg ChannelResourceIdentifier]]
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
    custom: [[CustomFieldsDraft.svg CustomFieldsDraft]]
}
interface MyCartRemoveLineItemAction [[MyCartRemoveLineItemAction.svg]]  {
    action: String
    lineItemId: String
    lineItemKey: String
    quantity: Long
    externalPrice: [[Money.svg Money]]
    externalTotalPrice: [[ExternalLineItemTotalPrice.svg ExternalLineItemTotalPrice]]
    shippingDetailsToRemove: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
}
interface MyCartSetLineItemShippingDetailsAction [[MyCartSetLineItemShippingDetailsAction.svg]]  {
    action: String
    lineItemId: String
    lineItemKey: String
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
}
interface StagedOrderAddCustomLineItemAction [[StagedOrderAddCustomLineItemAction.svg]]  {
    action: String
    money: [[Money.svg Money]]
    name: [[LocalizedString.svg LocalizedString]]
    key: String
    quantity: Long
    slug: String
    taxCategory: [[TaxCategoryResourceIdentifier.svg TaxCategoryResourceIdentifier]]
    externalTaxRate: [[ExternalTaxRateDraft.svg ExternalTaxRateDraft]]
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
    priceMode: [[CustomLineItemPriceMode.svg CustomLineItemPriceMode]]
    custom: [[CustomFieldsDraft.svg CustomFieldsDraft]]
}
interface StagedOrderAddLineItemAction [[StagedOrderAddLineItemAction.svg]]  {
    action: String
    key: String
    productId: String
    variantId: Long
    sku: String
    quantity: Long
    addedAt: DateTime
    distributionChannel: [[ChannelResourceIdentifier.svg ChannelResourceIdentifier]]
    supplyChannel: [[ChannelResourceIdentifier.svg ChannelResourceIdentifier]]
    externalPrice: [[Money.svg Money]]
    externalTotalPrice: [[ExternalLineItemTotalPrice.svg ExternalLineItemTotalPrice]]
    externalTaxRate: [[ExternalTaxRateDraft.svg ExternalTaxRateDraft]]
    inventoryMode: [[InventoryMode.svg InventoryMode]]
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
    custom: [[CustomFieldsDraft.svg CustomFieldsDraft]]
}
interface StagedOrderRemoveLineItemAction [[StagedOrderRemoveLineItemAction.svg]]  {
    action: String
    lineItemId: String
    lineItemKey: String
    quantity: Long
    externalPrice: [[Money.svg Money]]
    externalTotalPrice: [[ExternalLineItemTotalPrice.svg ExternalLineItemTotalPrice]]
    shippingDetailsToRemove: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
}
interface StagedOrderSetCustomLineItemShippingDetailsAction [[StagedOrderSetCustomLineItemShippingDetailsAction.svg]]  {
    action: String
    customLineItemId: String
    customLineItemKey: String
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
}
interface StagedOrderSetLineItemShippingDetailsAction [[StagedOrderSetLineItemShippingDetailsAction.svg]]  {
    action: String
    lineItemId: String
    lineItemKey: String
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
}
interface CustomLineItemImportDraft [[CustomLineItemImportDraft.svg]]  {
    name: [[LocalizedString.svg LocalizedString]]
    slug: String
    quantity: Long
    money: [[Money.svg Money]]
    taxRate: [[TaxRate.svg TaxRate]]
    taxCategory: [[TaxCategoryResourceIdentifier.svg TaxCategoryResourceIdentifier]]
    priceMode: [[CustomLineItemPriceMode.svg CustomLineItemPriceMode]]
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
    state: [[ItemState.svg List<ItemState>]]
    custom: [[CustomFieldsDraft.svg CustomFieldsDraft]]
}
interface LineItemImportDraft [[LineItemImportDraft.svg]]  {
    name: [[LocalizedString.svg LocalizedString]]
    variant: [[ProductVariantImportDraft.svg ProductVariantImportDraft]]
    productId: String
    quantity: Long
    price: [[PriceDraft.svg PriceDraft]]
    taxRate: [[TaxRate.svg TaxRate]]
    distributionChannel: [[ChannelResourceIdentifier.svg ChannelResourceIdentifier]]
    supplyChannel: [[ChannelResourceIdentifier.svg ChannelResourceIdentifier]]
    inventoryMode: [[InventoryMode.svg InventoryMode]]
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
    state: [[ItemState.svg List<ItemState>]]
    custom: [[CustomFieldsDraft.svg CustomFieldsDraft]]
}
interface OrderSetCustomLineItemShippingDetailsAction [[OrderSetCustomLineItemShippingDetailsAction.svg]]  {
    action: String
    customLineItemId: String
    customLineItemKey: String
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
}
interface OrderSetLineItemShippingDetailsAction [[OrderSetLineItemShippingDetailsAction.svg]]  {
    action: String
    lineItemId: String
    lineItemKey: String
    shippingDetails: [[ItemShippingDetailsDraft.svg ItemShippingDetailsDraft]]
}

ItemShippingDetailsDraft --> CustomLineItemDraft #green;text:green : "shippingDetails"
ItemShippingDetailsDraft --> LineItemDraft #green;text:green : "shippingDetails"
ItemShippingDetailsDraft --> CartAddCustomLineItemAction #green;text:green : "shippingDetails"
ItemShippingDetailsDraft --> CartAddLineItemAction #green;text:green : "shippingDetails"
ItemShippingDetailsDraft --> CartRemoveLineItemAction #green;text:green : "shippingDetailsToRemove"
ItemShippingDetailsDraft --> CartSetCustomLineItemShippingDetailsAction #green;text:green : "shippingDetails"
ItemShippingDetailsDraft --> CartSetLineItemShippingDetailsAction #green;text:green : "shippingDetails"
ItemShippingDetailsDraft --> MyLineItemDraft #green;text:green : "shippingDetails"
ItemShippingDetailsDraft --> MyCartAddLineItemAction #green;text:green : "shippingDetails"
ItemShippingDetailsDraft --> MyCartRemoveLineItemAction #green;text:green : "shippingDetailsToRemove"
ItemShippingDetailsDraft --> MyCartSetLineItemShippingDetailsAction #green;text:green : "shippingDetails"
ItemShippingDetailsDraft --> StagedOrderAddCustomLineItemAction #green;text:green : "shippingDetails"
ItemShippingDetailsDraft --> StagedOrderAddLineItemAction #green;text:green : "shippingDetails"
ItemShippingDetailsDraft --> StagedOrderRemoveLineItemAction #green;text:green : "shippingDetailsToRemove"
ItemShippingDetailsDraft --> StagedOrderSetCustomLineItemShippingDetailsAction #green;text:green : "shippingDetails"
ItemShippingDetailsDraft --> StagedOrderSetLineItemShippingDetailsAction #green;text:green : "shippingDetails"
ItemShippingDetailsDraft --> CustomLineItemImportDraft #green;text:green : "shippingDetails"
ItemShippingDetailsDraft --> LineItemImportDraft #green;text:green : "shippingDetails"
ItemShippingDetailsDraft --> OrderSetCustomLineItemShippingDetailsAction #green;text:green : "shippingDetails"
ItemShippingDetailsDraft --> OrderSetLineItemShippingDetailsAction #green;text:green : "shippingDetails"
@enduml
