@startuml
skinparam monochrome true
skinparam packageStyle rectangle
skinparam shadowing false
skinparam classAttributeIconSize 0
hide circle
hide methods

title Domain Model

class propertyOwner {
    name
    citizenCardNumber
    taxNumber
    address
    email
    telephoneNumber
}

class Agent {
    name
    citizenCardNumber
    taxNumber
    address
    email
    telephoneNumber
}

'class Property{
'    typeOfProperty
'    area
'    location
'    distanceFromCityCentre
'    requestedPrice
'    photographs
'    numberOfBedrooms
'    numberOfBathrooms
'    numberOfParkingSpaces
'    availableEquipment
'    hasBasement
'    hasInhabitableLoft
'    sunExposureValue
'}

class Property{
    typeOfBusiness
    typeOfProperty
    area
    location
    distanceFromCenter
    price
}

class Apartment{
    numberOfBedrooms
    numberOfBathrooms
    numberOfParkingSpaces
    availableEquipment
}

class House{
    numberOfBedrooms
    numberOfBathrooms
    numberOfParkingSpaces
    availableEquipment
    basement
    inhabitableLoft
    sunExposure
}

'class Land{
'
'}

propertyOwner "1" -- "1" Agent : calls
Agent "1" - "0..*" Property: publishes
Property <|-- House
Property <|-- Apartment
'Property <|-- Land
@enduml
