falta so o chat
This commit is contained in:
68
docs/07_Models.md
Normal file
68
docs/07_Models.md
Normal file
@@ -0,0 +1,68 @@
|
||||
# 📦 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`.
|
||||
Reference in New Issue
Block a user