@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 ShoppingListLineItem [[ShoppingListLineItem.svg]]  {
    addedAt: DateTime
    custom: [[CustomFields.svg CustomFields]]
    deactivatedAt: DateTime
    id: String
    name: [[LocalizedString.svg LocalizedString]]
    productId: String
    productType: [[ProductTypeReference.svg ProductTypeReference]]
    quantity: Long
    variantId: Long
    variant: [[ProductVariant.svg ProductVariant]]
    productSlug: [[LocalizedString.svg LocalizedString]]
}



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]]
}

ShoppingListLineItem --> ShoppingList #green;text:green : "lineItems"
@enduml
