@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 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 MyCartDraft [[MyCartDraft.svg]]  {
    currency: String
    customerEmail: String
    businessUnit: [[BusinessUnitResourceIdentifier.svg BusinessUnitResourceIdentifier]]
    store: [[StoreResourceIdentifier.svg StoreResourceIdentifier]]
    lineItems: [[MyLineItemDraft.svg List<MyLineItemDraft>]]
    taxMode: [[TaxMode.svg TaxMode]]
    inventoryMode: [[InventoryMode.svg InventoryMode]]
    billingAddress: [[AddressDraft.svg AddressDraft]]
    shippingAddress: [[AddressDraft.svg AddressDraft]]
    shippingMethod: [[ShippingMethodResourceIdentifier.svg ShippingMethodResourceIdentifier]]
    itemShippingAddresses: [[AddressDraft.svg List<AddressDraft>]]
    shippingMode: [[ShippingMode.svg ShippingMode]]
    discountCodes: [[String.svg List<String>]]
    country: String
    locale: String
    deleteDaysAfterLastModification: Long
    custom: [[CustomFieldsDraft.svg CustomFieldsDraft]]
}

MyLineItemDraft --> MyCartDraft #green;text:green : "lineItems"
@enduml
