# Mapa de Ficheiros e Funções - Cuida+

Este documento é um inventário completo de todos os ficheiros da aplicação e as suas funções específicas.

## 📦 Estrutura de Pastas e Ficheiros

### 🔵 Interface de Utilizador (`ui/`)
- **`auth/`**: Gestão de entrada e registo.
  - `LoginActivity.java`: Ecrã de login com suporte para biometria (Fingerprint/Face ID).
  - `RegisterActivity.java`: Criação de nova conta.
  - `ForgotPasswordActivity.java`: Solicitação de recuperação de password.
  - `ResetPasswordActivity.java`: Definição de nova password após email.
- **`home/`**: Centro de informações.
  - `HomeFragment.java`: Exibe saudação, foto de perfil e o próximo medicamento agendado.
- **`medication/`**: Gestão completa de remédios.
  - `MedicationFragment.java`: Lista todos os medicamentos e gere os alarmes.
  - `MedicationDialog.java`: Janela para adicionar/editar (com múltiplos horários e pesquisa Firebase).
  - `MedicationViewModel.java`: Faz a ponte entre o Firestore e a interface.
  - `MedicationAdapter.java`: Desenha cada item da lista de medicação.
  - `ComprimidoRecyclerAdapter.java`: Gere a lista de sugestões de nomes de medicamentos.
- **`appointments/`**: Lista de consultas médicos.
  - `AppointmentsFragment.java`: Visualização da agenda pessoal do utilizador.
  - `AppointmentsViewModel.java`: Gere os dados das consultas.
  - `AppointmentAdapter.java`: Desenha o item de cada consulta.
- **`schedule/`**: Agendamento de novas consultas.
  - `ScheduleAppointmentFragment.java`: Escolha de médico e horário.
  - `ScheduleViewModel.java`: Verifica slots disponíveis e agenda lembretes de consulta (24h/30m).
  - `TimeSlotAdapter.java`: Lista as horas de marcação disponíveis.
- **`profile/`**: Perfil do utilizador.
  - `ProfileFragment.java`: Permite mudar foto, dados e exportar relatórios de saúde (PDF).
- **`sns24/`**: Triagem Inteligente.
  - `Sns24Fragment.java`: Chat IA para avaliação e registo de histórico de triagens no Firestore.

### 🟢 Dados e Modelos (`data/model/`)
- `User.java`: Representa a conta do utilizador.
- `Medication.java`: Dados de medicação (nome, horários, dosagem).
- `Appointment.java`: Dados da consulta (médico, data, hora).
- `Comprimido.java`: Objeto simples para os nomes sugeridos na pesquisa.

### 🟠 Serviços e Utilidades (`services/` & `utils/`)
- `AlarmScheduler.java`: Lógica centralizada para marcar alarmes no sistema Android.
- `AlarmReceiver.java`: O código que corre quando o alarme dispara.
- `NotificationHelper.java`: Cria o canal e a mensagem de notificação.
- `Gemini.java`: Integração com a Google AI para o diagnóstico inteligente.

### 🔴 Configuração (`/`)
- `MainActivity.java`: Contentor principal, gere navegação e ativa a persistência offline do Firestore.
- `AndroidManifest.xml`: Registo de atividades, permissões (Alarme, Localização) e providers.
- `build.gradle`: Bibliotecas (Firebase, Biometrics, IA).
- `res/xml/file_paths.xml`: Configuração de segurança para partilha de ficheiros (PDF).

---
*Mapa Completo da Aplicação - Cuida+ (Atualizado Abril 2026)*
