ja meti o droplist nos medicamentos

This commit is contained in:
2026-04-15 12:33:39 +01:00
parent cbfb87d052
commit 069562ecf3
34 changed files with 1678 additions and 1704 deletions

View File

@@ -0,0 +1,47 @@
# Estrutura de Dados e Firebase - Cuida+
Este documento documenta como a aplicação utiliza o Firebase para armazenamento e autenticação.
## 1. Firebase Authentication
- **Métodos:** Email e Password.
- **Identificação:** O `UID` do utilizador é usado como chave estrangeira em todas as coleções do Firestore para garantir a privacidade dos dados.
## 2. Cloud Firestore (Bancos de Dados NoSQL)
A aplicação utiliza as seguintes coleções principais:
### 👤 Coleção: `utilizadores`
Guarda o perfil do utilizador.
- **Campos:** `name`, `email`, `profilePictureUri`, `phone`.
- **Chave:** UID do Firebase Auth.
### 💊 Coleção: `medicamentos`
Guarda a lista de remédios de cada utilizador.
- **Campos:**
- `name`: Nome do fármaco.
- `time`: String com horários (ex: "08:00, 22:00").
- `dosage`: Via de administração (ex: "Via Oral").
- `notes`: Notas adicionais.
- `isTaken`: Boolean (estado atual).
- `userId`: UID do proprietário.
### 📅 Coleção: `appointments`
Guarda as marcações de consultas.
- **Campos:** `doctorName`, `date`, `time`, `description`, `userId`.
### 👨‍⚕️ Coleção: `medicos`
Lista de profissionais disponíveis para agendamento.
- **Campos:** `name`, `specialty`, `role` (deve ser 'medico').
## 3. Realtime Database
Utilizado especificamente para a funcionalidade de **Autocomplete / Pesquisa de Medicamentos**.
- **Nó:** `medication` ou `medicamentos`.
- **Conteúdo:** Lista global com milhares de nomes de medicamentos para sugestão rápida durante a escrita (sem necessidade de carregar do Firestore para poupar custos e ganhar velocidade).
## 4. Segurança (Regras Sugeridas)
Para garantir que um utilizador não vê os dados de outro, as regras do Firestore devem ser configuradas como:
```javascript
allow read, write: if request.auth != null && request.auth.uid == resource.data.userId;
```
---
*Documentação de Base de Dados - Cuida+*