# 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 com **4 Farmácias** em Anápolis e equipe completa em cada uma: #### 1. Farmácia Central (Sufixo 1) - **CNPJ**: 11.111.111/0001-11 - **Usuários**: `dono1`, `colab1`, `entregador1` (Senha: 123456) - **Localização**: Centro de Anápolis #### 2. Farmácia Jundiaí (Sufixo 2) - **CNPJ**: 22.222.222/0001-22 - **Usuários**: `dono2`, `colab2`, `entregador2` (Senha: 123456) - **Localização**: Bairro Jundiaí (Norte/Leste) #### 3. Farmácia Jaiara (Sufixo 3) - **CNPJ**: 33.333.333/0001-33 - **Usuários**: `dono3`, `colab3`, `entregador3` (Senha: 123456) - **Localização**: Vila Jaiara (Norte/Oeste) #### 4. Farmácia Universitária (Sufixo 4) - **CNPJ**: 44.444.444/0001-44 - **Usuários**: `dono4`, `colab4`, `entregador4` (Senha: 123456) - **Localização**: Cidade Universitária (Sul/Leste) #### Admin Global - **Usuário**: `admin` (Senha: admin123) ### 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