Files
cuidamais_med/docs/07_Models.md
2026-04-22 12:41:12 +01:00

2.3 KiB

📦 Models — Classes de Dados

Pasta: app/src/main/java/com/example/medcuida/pro/models/

Estas classes representam os objetos de dados (POJOs) usados em toda a aplicação. São compatíveis com o Firestore — cada uma tem um construtor vazio obrigatório e getters/setters.


Consulta.java (29 linhas)

Representa uma consulta médica agendada.

Campo Tipo Descrição
id String ID do documento Firestore
data String Data da consulta (ex: "22/04/2026")
hora String Hora da consulta (ex: "14:30")
medicos Object ID(s) do(s) médico(s) — pode ser String ou List<String>
pacienteId String ID do paciente associado
pacienteNome String Nome do paciente (para exibição rápida)
status String Estado: "Pendente", "aceite", "cancelada"

⚠️ O campo medicos é do tipo Object porque no Firestore pode ser guardado como String simples ou como Array, dependendo de como foi criado.


Medico.java (61 linhas)

Representa um médico registado na aplicação.

Campo Tipo Descrição
id String UID do Firebase Auth
nome String Nome completo
email String Email de login
especialidade String Especialidade médica
genero String Género (Masculino, Feminino, Outro)

Tem dois construtores: vazio (para Firestore) e completo (para criação manual).


Mensagem.java (42 linhas)

Representa uma mensagem de chat entre médico e paciente.

Campo Tipo Descrição
texto String Conteúdo da mensagem
senderId String UID de quem enviou
timestamp long Hora de envio em milissegundos (epoch)

Guardada na sub-coleção consultas/{id}/mensagens/.


Paciente.java (20 linhas)

Representa um paciente da aplicação.

Campo Tipo Descrição
id String ID do documento Firestore
nome String Nome do paciente
email String Email do paciente
fotoUrl String URL da foto de perfil (se existir)

É a classe mais simples — os dados adicionais (idade, sexo, nº utente) são lidos diretamente do Firestore no DetalhePacienteActivity.