@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 GeoJson [[GeoJson.svg]]  {
    type: String
}


interface GeoJsonPoint [[GeoJsonPoint.svg]]  {
    type: String
    coordinates: [[Double.svg List<Double>]]
}
interface Channel [[Channel.svg]]  {
    id: String
    version: Long
    createdAt: DateTime
    lastModifiedAt: DateTime
    lastModifiedBy: [[LastModifiedBy.svg LastModifiedBy]]
    createdBy: [[CreatedBy.svg CreatedBy]]
    key: String
    roles: [[ChannelRoleEnum.svg List<ChannelRoleEnum>]]
    name: [[LocalizedString.svg LocalizedString]]
    description: [[LocalizedString.svg LocalizedString]]
    address: [[Address.svg Address]]
    reviewRatingStatistics: [[ReviewRatingStatistics.svg ReviewRatingStatistics]]
    custom: [[CustomFields.svg CustomFields]]
    geoLocation: [[GeoJson.svg GeoJson]]
}
interface ChannelDraft [[ChannelDraft.svg]]  {
    key: String
    roles: [[ChannelRoleEnum.svg List<ChannelRoleEnum>]]
    name: [[LocalizedString.svg LocalizedString]]
    description: [[LocalizedString.svg LocalizedString]]
    address: [[AddressDraft.svg AddressDraft]]
    custom: [[CustomFieldsDraft.svg CustomFieldsDraft]]
    geoLocation: [[GeoJson.svg GeoJson]]
}
interface ChannelSetGeoLocationAction [[ChannelSetGeoLocationAction.svg]]  {
    action: String
    geoLocation: [[GeoJson.svg GeoJson]]
}
GeoJson --> GeoJsonPoint #blue;text:blue : "type : Point"
GeoJson --> Channel #green;text:green : "geoLocation"
GeoJson --> ChannelDraft #green;text:green : "geoLocation"
GeoJson --> ChannelSetGeoLocationAction #green;text:green : "geoLocation"
@enduml
