@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 ProductVariantAvailability [[ProductVariantAvailability.svg]]  {
    channels: [[ProductVariantChannelAvailabilityMap.svg ProductVariantChannelAvailabilityMap]]
    isOnStock: Boolean
    restockableInDays: Long
    availableQuantity: Long
    id: String
    version: Long
}



interface ProductVariant [[ProductVariant.svg]]  {
    id: Long
    sku: String
    key: String
    prices: [[Price.svg List<Price>]]
    attributes: [[Attribute.svg List<Attribute>]]
    price: [[Price.svg Price]]
    images: [[Image.svg List<Image>]]
    assets: [[Asset.svg List<Asset>]]
    availability: [[ProductVariantAvailability.svg ProductVariantAvailability]]
    isMatchingVariant: Boolean
    scopedPrice: [[ScopedPrice.svg ScopedPrice]]
    scopedPriceDiscounted: Boolean
    recurrencePrices: [[Price.svg List<Price>]]
}

ProductVariantAvailability --> ProductVariant #green;text:green : "availability"
@enduml
