@startuml
hide empty members

package ska_oso_pdm.entities{
    package mid {
        package sb_definition <<Rectangle>> {
            class SBDefinition {
              interface: str
            }
        }

        package scan_definition <<Rectangle>> {
            class ScanDefinition
        }

        package csp_configuration <<Rectangle>> {
            class CSPConfiguration
        }

        package dish_configuration <<Rectangle>> {
            class DishConfiguration
        }

        package dish_allocation <<Rectangle>> {
            class DishAllocation
        }
    }

    package common {
        class SBDefinitionID

        package sdp {
            package sdp_configuration <<Rectangle>> {
                class SDPConfiguration
            }

            package field_configuration <<Rectangle>> {
                class FieldConfiguration
            }
        }
    }

'    SBDefinition *-- "0..*\n\n" FieldConfiguration : field_configurations
'    SBDefinition *-- "0..*\n\n" CSPConfiguration : csp_configurations
'    SBDefinition *-- "0..1\n\n" SDPConfiguration : sdp_configurations
'    SBDefinition *-- "0..*\n\n" DishConfiguration : dish_configurations
'    SBDefinition *-- "0..1\n\n" DishAllocation : dish_allocations
'    SBDefinition *-- "0..*\n\n" ScanDefinition : scan_definitions
'    SBDefinition --> "0..*\n\n" ScanDefinition : scan_sequence
    SBDefinition *-- "1" SBDefinitionID : sbd_id
    SBDefinition *-- "0..*\n\n" FieldConfiguration
    SBDefinition *-- "0..*\n\n" CSPConfiguration
    SBDefinition *-- "0..1\n\n" SDPConfiguration
    SBDefinition *-- "0..*\n\n" DishConfiguration
    SBDefinition *-- "0..1\n\n" DishAllocation
    SBDefinition *-- "0..*\n\n" ScanDefinition
    SBDefinition --> "0..*\n\n" ScanDefinition
}
@enduml
