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 tipoObjectporque 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.