@startuml
Portal "1" *-- "*" District
Portal "1" *-- "*" AbstractUnit
UnitGroup "*" -- "*" Portal
District "1" *-- "*" Construction
Construction "1" *-- "*" Floor
Floor "1" *-- "*" PhysicalUnit
PhysicalUnit "*" --* "1" RealEstateUnit
AbstractUnit <|-- RealEstateUnit
AbstractUnit "*" -- "1" UnitType
UnitGroupType "1" -- "*" UnitGroup
UnitGroup "*" -- "*" AbstractUnit
class Portal {
domain: String
}
note left: From Basic Module
class District {
name: String
portal: Portal
}
class Construction {
name: String
district: District
}
class Floor {
name: String
construction: Construction
}
class PhysicalUnit {
name: String
floor: Floor
}
abstract class AbstractUnit {
name: String
portal: Portal
type: UnitType
}
note top: From Basic Module
class RealEstateUnit {
name: String
physicalUnits: PhysicalUnit[]
rooms: float
squareMeters: float
}
class UnitGroup {
name: String
type: String
portal: Portal
units: Unit[]
}
note top: From Basic Module
class UnitGroupType {
getType()
getName()
}
note top: From Basic Module
class UnitType {
getType()
getName()
}
note bottom: From Basic Module
@enduml
Relations in real estate
Here some items concerning the district, e.g. the building, is left out, because it has no
important meaning here. Portal and Contract belong to the Basic Module.