# Diagnóstico e correção — CaryCalc + Cariry Advocacia no mesmo banco

Testei tudo de verdade: subi um MySQL local, importei os dois bancos, rodei o
site com PHP embutido e simulei cadastro → login → chat → dashboard. Abaixo
está o que eu encontrei e o que corrigi.

## 🔴 Achado crítico: o site estava fora do ar

O `config/database.php` que está em uso hoje (o que você me mandou colado no
chat) só devolve um array:

```php
return ['host' => ..., 'database' => ..., ...];
```

Mas **todo o resto do código** (`api/auth.php`, `api/chat.php`,
`dashboard/advogado.php`, `dashboard/trabalhador.php`, o painel admin) chama
uma função `db()` que retorna a conexão PDO pronta. Essa função só existia
nos arquivos de backup `config/database0.php` e `database1.php` — não no
`database.php` ativo.

**Resultado:** cadastro e login geravam erro fatal (`Call to undefined
function db()`), e o painel do advogado/trabalhador nem carregava. Eu
reproduzi esse erro exato no meu teste antes de corrigir.

Além disso, `dashboard/advogado.php` e `dashboard/trabalhador.php` nunca
incluíam o `config/database.php` — mesmo se a função existisse, essas duas
páginas quebrariam do mesmo jeito.

**Correção:** reescrevi `config/database.php` no mesmo padrão do
`database0.php`/`database1.php` (que já é usado no resto do projeto), mas
com as credenciais novas (`localhost` / `cariry_advocacia` / `cariry_app`),
e adicionei o `require` que faltava nos dois dashboards.

## 🟡 Colisão de nomes entre os dois sistemas

Como identificado antes, `usuarios`, `processos` e `calculos` do CaryCalc
tinham o mesmo nome de tabelas com estrutura totalmente diferente das do
Cariry Advocacia. Isso já estava parcialmente resolvido no seu código: o
`cc_servicos` já era chamado com prefixo `cc_`, mas `usuarios`, `processos`,
`calculos`, `chat_mensagens` e `log_login` ainda estavam sem prefixo em
várias queries.

**Correção:** renomeei consistentemente para `cc_usuarios`, `cc_processos`,
`cc_calculos`, `cc_chat_mensagens` e `cc_log_login` em todos os arquivos que
os referenciam:
- `api/auth.php` (cadastro, login, log de tentativas)
- `api/chat.php` (histórico de chat, cálculos)
- `dashboard/advogado.php` e `dashboard/trabalhador.php`
- `admin/seo.php` (tela de logs)
- `admin/usuarios.php` (tela de gerenciar usuários)

## 🟡 `admin/usuarios.php` usava colunas que não existem

Essa tela do painel admin foi escrita para colunas `status`, `senha` e
`created_at` — mas a tabela real de usuários do CaryCalc tem `ativo`
(0/1), `senha_hash` e `criado_em`. Ia dar erro de SQL toda vez que alguém
tentasse usar essa tela. Corrigi o mapeamento de colunas e também removi a
opção "Administrador" do formulário de tipo, porque a coluna `tipo` só
aceita `advogado` ou `trabalhador` (é um `ENUM` no banco) — tentar salvar
"admin" ali daria erro.

## 🟢 Nota de segurança (não mexi, é decisão sua)

O login do painel admin (`admin/auth.php`) tem e-mail e senha
**fixos no código-fonte** (`admin@carycalc.com` / `admin123`). Isso é
independente da tabela de usuários. Se esse arquivo for público, qualquer
pessoa que veja o código sabe a senha do admin. Vale trocar essa senha e, no
ideal, tirar do código-fonte e colocar como variável de ambiente.

## 🟢 Arquivos-lixo removidos do pacote

Dentro do zip original havia:
- `admin/usuarios;.php` — cópia idêntica (e quebrada) de `admin/usuarios.php`
- `natalia.zip` e `.well-known.zip` — zips aninhados de você mesmo dentro da pasta

Removi os dois do pacote corrigido para não gerar confusão.

Também notei vários arquivos numerados (`login1.php`, `login2.php`,
`auth1.php`, `header0.php`, `header1.php`, `index1.php`, etc.) que parecem
ser versões antigas/rascunhos. Nenhum deles é chamado pelo código ativo, mas
se estiverem na pasta pública do site, dá pra acessá-los diretamente pela
URL — vale limpar quando puder, por segurança e organização.

## ✅ Testes que rodei (todos passaram)

Com os dois bancos (`cariry_advocacia.sql` + o CaryCalc migrado) importados
juntos no mesmo banco MySQL e o código corrigido:

| Teste | Resultado |
|---|---|
| Cadastro de novo usuário (`cadastro.php`) | ✅ HTTP 302, gravou em `cc_usuarios` |
| Login (`login.php`) | ✅ HTTP 302, gravou tentativa em `cc_log_login` |
| Dashboard do trabalhador (autenticado) | ✅ HTTP 200, sem erro |
| Chat da Natália (`api/chat.php`) | ✅ HTTP 200, gravou mensagens em `cc_chat_mensagens` |
| Dados da Advocacia (`usuarios`, `processos`) | ✅ Intactos, nenhuma linha alterada |

## 📦 O que vai no pacote

1. **`carycalc_migrado_para_cariry_advocacia.sql`** — script para importar as
   tabelas do CaryCalc (com prefixo `cc_`) no banco `cariry_advocacia`.
2. **`natalia_corrigido.zip`** — a pasta `natalia/` inteira, com todas as
   correções acima já aplicadas. É só substituir a pasta atual no servidor
   por essa (ou sobrescrever arquivo por arquivo).

## Como aplicar em produção

1. Faça backup do banco atual: `mysqldump cariry_advocacia > backup_antes.sql`
2. Importe `carycalc_migrado_para_cariry_advocacia.sql` no banco `cariry_advocacia`
3. Suba os arquivos de `natalia_corrigido.zip` no lugar dos atuais (pasta `natalia/`)
4. Teste: acesse `/natalia/cadastro.php`, crie uma conta de teste, veja se
   cai no painel certo, e mande uma mensagem no chat da Natália
5. Confira que o site da Advocacia continua normal (login, processos, etc.)
