@startuml
hide methods
left to right direction

class Plataforma {
  -String designacao
}

class AreaAtividade {
  -String codigo
  -String descBreve
  -String descDetalhada
 
}

class CompetenciaTecnica {
  -String codigo
  -String descBreve
  -String descDetalhada
}
class CategoriaTarefa {
  -String idenInterno
  -String descrição
}
class Tarefa {
  -String refUnica
  -String designação
  -String descInformal
  -String descTecnica
  -String duracao
  -String custo
}

class Organizacao {
  -String nome
  -String NIF
  -String website
  -String telefone
  -String email
}

class Colaborador {
  -String nome
  -String funcao
  -String telefone
  -String email
}

class EnderecoPostal {
  -String local
  -String codPostal
  -String localidade
}

class Freelancer {
  
}
class Obrigatoria {
  -String tipoObrig
}

class Administrativo {
  
}

class Utilizador {
  -String nome
  -String email
  -String password
}


Plataforma "1" -- "*" AreaAtividade : possui >
Plataforma "1" -- "*" CompetenciaTecnica : possui >
Plataforma "1" -- "*" Organizacao : tem registadas >
Plataforma "1" -- "*" Freelancer : tem/usa  >
Plataforma "1" -- "*" Administrativo : tem  >
CompetenciaTecnica "*" -- "1" AreaAtividade : referente a >
Organizacao "1" -- "1..*" Colaborador: tem >
Organizacao "1" -- "1" Colaborador: tem gestor >
Organizacao "1" -- "1" EnderecoPostal: localizada em >

Freelancer "0..1" -- "1" Utilizador: atua como >
Administrativo "0..1" -- "1" Utilizador: atua como >
Colaborador "0..1" -- "1" Utilizador: atua como >
Colaborador "1" -- "*" Tarefa: especifica >
Tarefa "*" -- "1" CategoriaTarefa: insere-se>
Organizacao "1" -- "*" Tarefa: publica>
CategoriaTarefa "*" -- "1" AreaAtividade: pertence>
CategoriaTarefa "1" -- "*" CompetenciaTecnica: possui>
(CategoriaTarefa,CompetenciaTecnica)..Obrigatoria
@enduml