riseup-squad18/APLICAR_MIGRATION_CONFIRMACAO.md
2025-12-06 19:13:27 -03:00

108 lines
3.4 KiB
Markdown

# 🔧 Aplicar Migration: Confirmation Status
## ⚠️ IMPORTANTE - LEIA PRIMEIRO
**A tabela `appointments` não existe no seu banco de dados!**
Você tem duas opções:
### ✅ **Opção A: Usar o Supabase REST API (Sistema já funciona)**
O sistema está usando a **API REST do Supabase** que funciona sem migrations locais. Neste caso, você **NÃO precisa aplicar esta migration**. As notificações vão funcionar assim que você:
1. Criar consultas pelo sistema
2. As consultas terão os campos necessários automaticamente
### ✅ **Opção B: Aplicar Migration no Supabase Dashboard**
Se você quer adicionar os campos de confirmação no banco existente:
## 🚀 Como Aplicar (Via Supabase Dashboard)
1. **Acesse:** https://supabase.com/dashboard
2. **Selecione** seu projeto
3. **Vá em:** SQL Editor (menu lateral)
4. **Clique em:** "New Query"
5. **Abra o arquivo:** `supabase\migrations\20251203000000_add_confirmation_status.sql`
6. **Copie TODO o conteúdo** do arquivo
7. **Cole** no SQL Editor
8. **Clique em:** RUN (botão verde)
## 📋 O que esta migration faz?
- ✅ Verifica se a tabela `appointments` existe
- ✅ Adiciona coluna `confirmation_status` (pending/confirmed/declined)
- ✅ Adiciona coluna `confirmed_at` (timestamp da confirmação)
- ✅ Cria índices para melhor performance
- ✅ Atualiza consultas existentes automaticamente
- ✅ Mostra mensagens de progresso
## ✅ Como saber se funcionou?
Após executar, você verá mensagens como:
```
NOTICE: ✓ Coluna confirmation_status adicionada
NOTICE: ✓ Coluna confirmed_at adicionada
NOTICE: ✓ Índices criados
NOTICE: ✓ Consultas existentes atualizadas
NOTICE: ✓✓ Migration concluída com sucesso!
```
E verá uma tabela mostrando as colunas criadas.
## 📊 Testar
Após aplicar a migration:
1. Acesse a aba **Notificações** no dashboard do paciente
2. As consultas com status `requested` ou `confirmed` devem aparecer
3. Clique em **Confirmar Presença** em uma consulta
4. Verifique se o status mudou para `confirmed` e a notificação sumiu
## 🔍 Consultas Úteis
### Ver todas as consultas com confirmação pendente:
```sql
SELECT id, patient_id, doctor_id, scheduled_at, status, confirmation_status
FROM appointments
WHERE confirmation_status = 'pending'
ORDER BY scheduled_at;
```
### Ver confirmações de um paciente específico:
```sql
SELECT * FROM appointments
WHERE patient_id = 'SEU_PATIENT_ID'
AND confirmation_status IS NOT NULL
ORDER BY scheduled_at DESC;
```
## ⚠️ Troubleshooting
### Erro: "relation does not exist"
- Certifique-se de que está conectado ao banco correto
- Verifique se a tabela `appointments` existe
### Erro: "column already exists"
- A migration já foi aplicada anteriormente
- Você pode ignorar este erro
### As notificações não aparecem?
1. Verifique se há consultas com status `requested` ou `confirmed`
2. Confirme que `confirmation_status` = `'pending'` ou `NULL`
3. Verifique se o `patient_id` corresponde ao usuário logado
4. Limpe o cache do navegador (Ctrl + Shift + R)
## 📝 Rollback (se necessário)
Se precisar reverter a migration:
```sql
-- Remover índices
DROP INDEX IF EXISTS idx_appointments_confirmation_status;
DROP INDEX IF EXISTS idx_appointments_patient_confirmation;
-- Remover colunas
ALTER TABLE appointments DROP COLUMN IF EXISTS confirmation_status;
ALTER TABLE appointments DROP COLUMN IF EXISTS confirmed_at;
```