4.7 KiB
4.7 KiB
Recuperação do Ambiente de Desenvolvimento (24/01/2026)
Contexto
O usuário relatou perda de dados ("app novo")- [x] Debug/Fix Reservations Page (/public/.../reservas) após tentar rodar o ambiente. Houve uma confusão entre diretórios de projeto (chatwoot-main vs chatwoot-develop) e conflitos de banco de dados local vs Docker.
Problemas Identificados
- Conflito de Porta Postgres: Porta
5432já em uso no host, impedindo start do Docker. - Diretório Incorreto: O terminal estava rodando em
chatwoot-main(código limpo/antigo) em vez dechatwoot-develop(código com features customizadas do cliente). - Banco de Dados Inseguro: Container antigo PostgreSQL 15 não suportava extensão
vectornecessária para novas features de IA. - Perda Aparente de Dados: Ao resetar o banco do
main, o usuário "perdeu" acesso.
Solução Aplicada
1. Infraestrutura de Banco de Dados
- Nova Porta: Configurado
chatwoot-developpara usar Postgres na porta 5433 (POSTGRES_PORT=5433no .env e docker-compose). - Migração de Dados:
- Backup realizado do container antigo (
chatwoot-develop-postgres-1-> bancochatwoot_dev). - Restaurado no novo container (
chatwoot-main-postgres-1-> bancochatwoot_dev) rodando imagem compatível (pgvector/pgvector:pg16). - Executado
db:prepareedb:migratepara alinhar schemas.
- Backup realizado do container antigo (
2. Correção de Código (Codebase)
- Switch de Diretório: Alterado execução para
/Users/user/Dev/Produtos/Chatwoot/chatwoot-develop. - Dependências: Ajustado
package.jsonpara aceitar Node >= 20 e pnpm >= 8 (compatível com ambiente local). - Ambiente: Atualizado
.envdodeveloppara apontar corretamente para o novo banco na porta 5433.
3. Acesso
- Usuário
rodrigobm10@gmail.comverificado e senha redefinida/confirmada paraNicodemos1@@1.
4. Correção Frontend "Reservas"
- Problema: A página de reservas estava "bugada" (branca/erro) porque o ponto de entrada
captain_booking.jstentava carregar um arquivo Vue inexistente (App.vue). - Causa: A migração de código para React (
captain_booking_app) não atualizou o entrypoint principal. - Solução: Substituído
app/javascript/entrypoints/captain_booking.jsporcaptain_booking.tsx, configurado para montar corretamente a aplicação React localizada ementerprise/app/javascript/captain_booking_app/App.tsx.
7. Correção Carregamento de Unidades (Mismatch de Tipo)
- Problema: O dropdown "Unidade" mostrava "Nenhuma unidade para esta marca" mesmo com marcas da rede cadastradas.
- Causa: Incompatibilidade entre o TypeScript (
brandId) e a resposta da API (captain_brand_id). O filtro no frontend falhava (undefined !== brand.id). - Solução: Atualizado
types.tseApp.tsxpara usarcaptain_brand_id, alinhando com o snake_case do Rails.
Como Validar
- Acessar
http://localhost:3000. - Logar com
rodrigobm10@gmail.com. - Verificar se o fundo está Azul e o botão Admin sumiu.
- Verificar menu "Reservas" na sidebar.
- Acessar a página de reservas pública e verificar se o formulário carrega.
- Atualizar a página.
- Selecionar "Hotel 1001 Noites".
- O dropdown "Unidade" DEVE listar "Prime Águas Claras" e "Unidade Matriz".
8. Sincronização Categorias da Unidade (System Data)
- Problema: As categorias exibidas ("Premium", "Master", etc.) eram genéricas e não as cadastradas no admin ("Stilo", "Alexa", etc.).
- Causa: No passo 5, popularam-se dados fictícios. O sistema real armazena isso na tabela de Marca (
brands). - Solução: Rodado script para copiar as categorias reais da
Brandpara aUnitno banco de dados.
Como Validar
- Na página de reservas, selecionar "Hotel 1001 Noites Prime".
- Selecionar unidade "Prime Águas Claras".
- O dropdown "Categoria" deve mostrar: Stilo, Alexa, Spa-Hidromassagem.
9. Correção Tabela de Preços (Cálculo Zerado)
- Problema: Ao selecionar data/hora, o "Valor Total da Reserva" não aparecia ou ficava zerado.
- Causa: As novas categorias (Stilo, Alexa, etc.) não tinham tabela de preço cadastrada no banco (
captain_pricings). - Solução: Executado script para gerar tabela de preços padrão (R$ 80,00 base) para todas as categorias e durações da marca "Hotel 1001 Noites Prime".
Como Validar
- Selecionar "Prime Águas Claras".
- Categoria "Stilo".
- Permanência "3hrs".
- Data Hoje + Horário atual.
- Verificar: Card de preço deve aparecer "Valor Total da Reserva: R$ 80,00" (ou similar).
Próximos Passos (Recomendação)
- Manter uso exclusivo da pasta
chatwoot-develop. - Não alterar porta do Postgres sem revisar
docker-compose.yaml.