# ⚡ COMECE AGORA - Instruções Executivas

## 🎯 Se você tem 2 minutos
Leia isto e execute:

```bash
# 1. Backup do banco
pg_dump SAG > backup_nfe_$(date +%Y%m%d).sql

# 2. Executar SQL
psql -U postgres -d SAG -f MODELO_BANCO_DADOS.sql

# 3. Verificar
psql -U postgres -d SAG -c "SELECT COUNT(*) as tabelas FROM pg_tables WHERE schemaname='public' AND tablename LIKE 'tms001%';"

# Deve retornar: 5 tabelas
```

---

## 🎯 Se você tem 30 minutos

### Passo 1: Entender o projeto (10 min)
```bash
Leia: RESUMO_FINAL.md (ou STATUS_COMPLETO.md)
```

### Passo 2: Configurar banco (15 min)
```bash
# Fazer backup
pg_dump SAG > backup_nfe_$(date +%Y%m%d).sql

# Criar tabelas
psql -U postgres -d SAG -f MODELO_BANCO_DADOS.sql

# Verificar
psql -U postgres -d SAG << EOF
\dt tms001*
SELECT COUNT(*) as total_registros FROM tms001_notafiscal;
EOF
```

### Passo 3: Testar armazenamento (5 min)
```bash
# Testar com curl
curl -X POST \
  -H "Cookie: PHPSESSID=seu_session_id" \
  -F "arquivo=@exemplos_xml/exemplo_nfe_completa.xml" \
  http://localhost/tms010_operacao/import_xml.php

# Esperado: JSON com sucesso e id_notafiscal
```

---

## 🎯 Se você tem 2 horas

### Passo 1: Configurar Banco (20 min)
```bash
# Fazer backup
pg_dump SAG > backup_nfe.sql

# Criar tabelas, views, triggers
psql -U postgres -d SAG -f MODELO_BANCO_DADOS.sql

# Verificar tabelas (deve retornar 5)
psql -U postgres -d SAG -c "\dt tms001*"

# Verificar views (deve retornar 3)
psql -U postgres -d SAG -c "\dv vw_*"
```

### Passo 2: Entender o Design (40 min)
Leia nesta ordem:
1. `RESUMO_FINAL.md` (5 min)
2. `MODELO_BANCO_DADOS_EXPLICADO.md` (20 min)
3. `QUICK_REFERENCE.md` (10 min)

### Passo 3: Testar Importação (30 min)
```bash
# Terminal 1: Ver logs
tail -f /var/log/php-fpm.log

# Terminal 2: Upload de XML
curl -v -X POST \
  -H "Cookie: PHPSESSID=$(php -r 'session_start(); echo session_id();')" \
  -F "arquivo=@exemplos_xml/exemplo_nfe_completa.xml" \
  http://localhost/tms010_operacao/import_xml.php

# Verificar dados inseridos
psql -U postgres -d SAG << EOF
SELECT id, numero_nf, valor_total, status FROM tms001_notafiscal;
SELECT * FROM tms001_notafiscal_itens WHERE id_notafiscal = 1;
SELECT * FROM tms001_cliente_temporario;
SELECT * FROM tms001_nf_importacao ORDER BY data_importacao DESC;
EOF
```

---

## 🎯 Se você tem 1 dia

### Manhã (4 horas): Fase 3 + Setup
1. Fazer backup
2. Executar SQL
3. Validar tabelas e dados
4. Ler documentação completa

### Tarde (4 horas): Fase 4 - Endpoints AJAX
1. Criar `ajax_obter_nf.php`
2. Criar `ajax_obter_itens_nf.php`
3. Criar `ajax_obter_clientes_temp.php`
4. Testar cada endpoint

### Próximo dia: Frontend + Testes
1. Adicionar modal HTML em cad.php
2. Adicionar CSS em tms010.css
3. Adicionar JavaScript
4. Testar fluxo completo

---

## 📋 Instruções Passo-a-Passo

### PASSO 1: Backup (5 min)
```bash
cd /var/lib/postgresql/
pg_dump SAG > /home/backup/SAG_$(date +%Y%m%d_%H%M%S).sql
echo "Backup criado com sucesso"
```

### PASSO 2: Criar Tabelas (5 min)
```bash
# Linux/Mac:
psql -U postgres -d SAG -f MODELO_BANCO_DADOS.sql

# Windows (cmd.exe):
psql -U postgres -d SAG -f MODELO_BANCO_DADOS.sql
```

### PASSO 3: Verificar Instalação (5 min)
```bash
# Verificar tabelas
psql -U postgres -d SAG -c "\dt tms001*"

# Saída esperada:
# public | tms001_cliente_temporario
# public | tms001_nf_importacao
# public | tms001_notafiscal
# public | tms001_notafiscal_itens
# public | tms001_nf_viagem

# Verificar views
psql -U postgres -d SAG -c "\dv vw_*"

# Saída esperada:
# public | vw_clientes_temp_pendentes
# public | vw_nf_pendentes
# public | vw_nf_por_viagem
```

### PASSO 4: Testar Importação (10 min)
```bash
# Abrir navegador e ir para teste_xml.php
http://localhost/tms010_operacao/teste_xml.php

# Ou via curl:
curl -X POST \
  -F "arquivo=@exemplos_xml/exemplo_nfe_completa.xml" \
  http://localhost/tms010_operacao/import_xml.php | jq .

# Se receber JSON com "sucesso": true, funcionou!
```

### PASSO 5: Verificar Dados (5 min)
```sql
-- Verificar NF inserida
SELECT * FROM tms001_notafiscal;

-- Verificar itens
SELECT * FROM tms001_notafiscal_itens;

-- Verificar auditoria
SELECT * FROM tms001_nf_importacao;

-- Verificar clientes temporários (se houver)
SELECT * FROM tms001_cliente_temporario;
```

---

## 🔧 Troubleshooting Rápido

### ❌ Erro: "psql: comando não encontrado"
```bash
# Windows: Adicionar psql ao PATH
# Ou usar: "C:\Program Files\PostgreSQL\15\bin\psql.exe"
```

### ❌ Erro: "permission denied"
```bash
# Usar sudo no Linux:
sudo psql -U postgres -d SAG -f MODELO_BANCO_DADOS.sql
```

### ❌ Erro: "database SAG does not exist"
```bash
# Criar banco:
createdb -U postgres SAG
```

### ❌ Erro: "arquivo não encontrado"
```bash
# Verificar caminho relativo:
pwd  # Saber onde está
cd /caminho/correto
psql -U postgres -d SAG -f MODELO_BANCO_DADOS.sql
```

### ❌ Erro: "Could not open file"
```bash
# Usar caminho absoluto:
psql -U postgres -d SAG -f /home/usuario/sag-adm/MODELO_BANCO_DADOS.sql
```

---

## ✅ Checklist de Validação

Após cada passo, verificar:

### ✅ Pós-Backup
- [ ] Arquivo .sql foi criado
- [ ] Tamanho > 1MB (banco não está vazio)
- [ ] Caminho está acessível

### ✅ Pós-SQL Execution
- [ ] Nenhum erro no psql
- [ ] 5 tabelas criadas
- [ ] 3 views criadas
- [ ] Indexes criados

### ✅ Pós-Teste de Importação
- [ ] Resposta JSON recebida
- [ ] Status: "sucesso": true
- [ ] id_notafiscal retornado
- [ ] Dados em tms001_notafiscal

### ✅ Dados Inseridos Corretamente
- [ ] 1 registro em tms001_notafiscal
- [ ] N registros em tms001_notafiscal_itens (um por item)
- [ ] 1 registro em tms001_nf_importacao (auditoria)
- [ ] 0 ou mais em tms001_cliente_temporario (se cliente não encontrado)

---

## 🚀 Próximas Ações Após Setup Básico

### Opção A: Implementar Frontend (Recomendado)
1. Leia `TELA_VALIDACAO_NF.md`
2. Crie 5 endpoints AJAX
3. Adicione modal HTML em cad.php
4. Teste no browser

### Opção B: Fazer Testes Extensivos
1. Teste com múltiplos XMLs
2. Teste com clientes temporários
3. Teste de duplicatas
4. Teste de erros XML

### Opção C: Documentar para Usuários
1. Crie manual de uso
2. Grave video tutorial
3. Prepare FAQ
4. Teste com usuários

---

## 📊 Tempo de Execução

| Tarefa | Tempo | Comando |
|--------|-------|---------|
| Backup | 2-5 min | `pg_dump SAG > backup.sql` |
| SQL | 1-2 min | `psql -U postgres -d SAG -f SQL` |
| Verificação | 2 min | `\dt tms001*` no psql |
| Teste | 5 min | `curl` com upload |
| **Total** | **10-15 min** | - |

---

## 📱 URLs de Teste

```
Upload:  POST http://localhost/tms010_operacao/import_xml.php
         Headers: Content-Type: multipart/form-data
         Body: arquivo (form field)

Teste:   GET http://localhost/tms010_operacao/teste_xml.php

Form:    GET http://localhost/tms010_operacao/cad.php
```

---

## 📞 Se Encontrar Problemas

### 1. Verificar Logs
```bash
# PHP
tail -f /var/log/php-fpm.log

# PostgreSQL
tail -f /var/log/postgresql/postgresql.log

# Apache/Nginx
tail -f /var/log/apache2/error.log
# ou
tail -f /var/log/nginx/error.log
```

### 2. Verificar Banco
```bash
# Conectar direto
psql -U postgres -d SAG

# Listar tabelas
\dt tms001*

# Contar registros
SELECT COUNT(*) FROM tms001_notafiscal;

# Ver erro mais recente
SELECT * FROM tms001_nf_importacao ORDER BY data_importacao DESC LIMIT 1;
```

### 3. Consultar Documentação
- Erro no SQL? → Leia `MODELO_BANCO_DADOS_EXPLICADO.md`
- Erro no PHP? → Leia `IMPLEMENTACAO_ARMAZENAMENTO_NF.md`
- Erro geral? → Leia `QUICK_REFERENCE.md` (Erros Comuns)

---

## 🎯 Resultado Final Esperado

Após completar todos os passos, você terá:

✅ Banco de dados com 5 tabelas funcionando  
✅ Sistema de importação de XML operacional  
✅ Dados armazenados em banco  
✅ Auditoria de importações  
✅ Pronto para adicionar frontend  

---

## 🚀 Comece Agora!

### TL;DR (2 minutos):
```bash
# 1. Backup
pg_dump SAG > backup.sql

# 2. Executar SQL
psql -U postgres -d SAG -f MODELO_BANCO_DADOS.sql

# 3. Verificar
psql -U postgres -d SAG -c "SELECT COUNT(*) FROM pg_tables WHERE schemaname='public' AND tablename LIKE 'tms001%';"
```

### Se tiver dúvidas:
Leia `INDICE_DOCUMENTACAO.md` ou `QUICK_REFERENCE.md`

---

**Pronto? Vamos começar! 🚀**

Próximo comando: `psql -U postgres -d SAG -f MODELO_BANCO_DADOS.sql`
