3.4 KiB
3.4 KiB
🔧 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ê:
- Criar consultas pelo sistema
- 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)
- Acesse: https://supabase.com/dashboard
- Selecione seu projeto
- Vá em: SQL Editor (menu lateral)
- Clique em: "New Query"
- Abra o arquivo:
supabase\migrations\20251203000000_add_confirmation_status.sql - Copie TODO o conteúdo do arquivo
- Cole no SQL Editor
- Clique em: RUN (botão verde)
📋 O que esta migration faz?
- ✅ Verifica se a tabela
appointmentsexiste - ✅ 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:
- Acesse a aba Notificações no dashboard do paciente
- As consultas com status
requestedouconfirmeddevem aparecer - Clique em Confirmar Presença em uma consulta
- Verifique se o status mudou para
confirmede a notificação sumiu
🔍 Consultas Úteis
Ver todas as consultas com confirmação pendente:
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:
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
appointmentsexiste
Erro: "column already exists"
- A migration já foi aplicada anteriormente
- Você pode ignorar este erro
As notificações não aparecem?
- Verifique se há consultas com status
requestedouconfirmed - Confirme que
confirmation_status='pending'ouNULL - Verifique se o
patient_idcorresponde ao usuário logado - Limpe o cache do navegador (Ctrl + Shift + R)
📝 Rollback (se necessário)
Se precisar reverter a migration:
-- 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;