@startuml
skinparam classAttributeIconSize 0
hide methods
left to right direction

class Entrega {
  -idEntrega
  -dataInicio
  -dataFim
  -pesoEntrega
}

class Encomenda {
  -idEncomenda
  -dataPedida
  -preco
  -pesoEncomenda
  -taxa
}

class Estafeta {
  -pesoEstafeta
}

class Endereco {
  -morada
  -latitude
  -longitude
  -altitude
}

class Scooter {
  -idScooter
}

class Cliente {
  -creditos
}


class EstadoEncomenda {
  -idEstadoEncomenda
  -designacao
}

class Produto {
  -idProduto
  -designacao
  -peso
  -precoBase
}

class Utilizador {
  -NIF
  -nome
  -email
  -numeroSegurancaSocial
  -password
}

class Veiculo {
  -idveiculo
  -descricao
  -capacidade
  -percentagemBateria
  -pesoMaximo
  -pesoVeiculo
  -potencia
  -areaFrontal
}

class Drone {
  -idDrone
  -hoverPower
}

class Farmacia {
  -NIF
  -email
}

Encomenda "1" -- "1" EstadoEncomenda : tem >
Entrega "1" -- "*" Encomenda : possui >
Estafeta "1" -- "*" Entrega: realiza >
Cliente "1" -- "1" Endereco: tem >
Cliente "1" -- "*" Encomenda: realiza e paga >
Entrega "*" -- "1" Veiculo: realiza <
Encomenda "1" -- "*" Produto: tem >
Estafeta "1" -- "1" Utilizador: atua como >
Cliente "1" -- "1" Utilizador: atua como >
Veiculo "1" -- "1" Drone: é <
Veiculo "1" -- "1" Scooter: é <
Farmacia "1" -- "*" Encomenda: tem >
Farmacia "1" -- "*" Veiculo: possui >
Farmacia "1" -- "1" Endereco: tem >

@enduml