# SaveInMed Seeder API Microserviço utilitário para popular o banco de dados com dados de teste para desenvolvimento e demonstração. ## ⚠️ AVISO IMPORTANTE **Este serviço é DESTRUTIVO!** Ele: 1. **REMOVE** todas as tabelas existentes (`companies`, `products`, `users`, etc.) 2. **RECRIA** as tabelas. 3. **MODO FULL**: Gera volume, mas **NÃO** cria usuários padrão (apenas estrutura). 4. **MODO LEAN**: Gera dados mínimos e **CRIA** usuários padrão (admin, dono, etc.). ## 🎯 Modos de Operação ### 1. `mode=lean` (Recomendado para Dev) Gera um ambiente funcional mínimo: - **1 Farmácia** (Farmácia Modelo) - **4 Usuários** (Admin, Dono, Colaborador, Entregador) - **15 Produtos** - Ideal para testar fluxos de login, carrinho, checkout. ### 2. `mode=full` (Padrão/Load Test) Gera volume de dados: - **400 Farmácias** - **~85.000 Produtos** - **SEM USUÁRIOS** (Tabela criada, mas vazia) - Ideal para testar performance, busca geografia, clusterização no mapa. ## 🏗️ Arquitetura ``` seeder-api/ ├── main.go # Entry point HTTP (POST /seed) ├── pkg/ ├── seeder/ │ └── seeder.go # Lógica de geração de dados ├── go.mod └── go.sum ``` ## Variáveis de Ambiente ```bash DATABASE_URL=postgres://user:password@host:port/dbname?sslmode=disable PORT=8080 # Porta padrão (pode ser alterada) ``` ## 🚀 Uso ### Executar Localmente ```bash # Configurar DATABASE_URL export DATABASE_URL=postgres://postgres:postgres@localhost:5432/saveinmed?sslmode=disable export PORT=8216 # Executar go run main.go ``` ### Endpoints #### 1. Seeder Rápido (Lean) - Cria Usuários! ```bash POST http://localhost:8216/seed?mode=lean # Resposta "Lean seed completed. Users: admin, dono, colaborador, entregador (Pass: 123456/admin123)" ``` #### 2. Seeder Completo (Full) ```bash POST http://localhost:8216/seed # Resposta { "tenants": 400, "products": 85432, "location": "Anápolis, GO" } ``` ## ⚡ Fluxo de Uso Recomendado 1. **Parar o backend principal** (para evitar conflitos de conexão/locks) 2. **Executar o seeder**: - `curl -X POST "http://localhost:8216/seed?mode=lean"` 3. **Reiniciar o backend** 4. A API estará pronta com dados de teste e usuários para login. ## 🐳 Docker ```bash # Build docker build -t saveinmed-seeder:latest . # Run docker run -p 8216:8216 \ -e DATABASE_URL=postgres://user:password@host:5432/saveinmed \ -e PORT=8216 \ saveinmed-seeder:latest # Seed (Lean) curl -X POST "http://localhost:8216/seed?mode=lean" ``` ## 📝 Notas - Os dados são **regeneráveis** - execute novamente para limpar e recriar. - **NÃO USE EM PRODUÇÃO** - vai apagar todos os dados reais! ## 📝 Licença MIT