| .. | ||
| pkg/seeder | ||
| .gitignore | ||
| go.mod | ||
| go.sum | ||
| main.go | ||
| README.md | ||
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! Ao rodar qualquer seed:
- REMOVE todas as tabelas existentes (
companies,products,users, etc.) - RECRIA as tabelas do zero.
🎯 Modos de Operação
1. mode=lean (Desenvolvimento)
Fluxo: Limpa tudo > Cria tabelas > Cria 4 farmácias > Cria Usuários para Login.
Use este modo para desenvolvimento diário. Ele cria as seguintes credenciais de acesso:
| Farmácia | Função | Usuário | Senha |
|---|---|---|---|
| Farmácia Central | Dono | dono1 |
123456 |
| Colaborador | colab1 |
123456 |
|
| Entregador | entregador1 |
123456 |
|
| Farmácia Jundiaí | Dono | dono2 |
123456 |
| Colaborador | colab2 |
123456 |
|
| Entregador | entregador2 |
123456 |
|
| Farmácia Jaiara | Dono | dono3 |
123456 |
| Colaborador | colab3 |
123456 |
|
| Entregador | entregador3 |
123456 |
|
| Farmácia Universitária | Dono | dono4 |
123456 |
| Colaborador | colab4 |
123456 |
|
| Entregador | entregador4 |
123456 |
|
| Global | Admin | admin |
admin123 |
2. mode=full (Teste de Carga)
Fluxo: Limpa tudo > Cria tabelas > Gera ~400 farmácias e ~85k produtos.
⚠️ Importante: O modo FULL NÃO cria usuários de farmácia padrão para login, apenas o admin global pode existir (dependendo da implementação). Use apenas para testar performance de queries geográficas ou listagens massivas.
🚀 Como Rodar
Pré-requisitos
- PostgreSQL rodando
- Go 1.22+
1. Configurar
Certifique-se que o .env ou variáveis de ambiente estão corretas:
export DATABASE_URL=postgres://user:password@localhost:5432/saveinmed?sslmode=disable
export PORT=8216
2. Executar API
go run main.go
3. Disparar o Seed (Em outro terminal)
Opção A: Resetar e Criar Dados de Dev (Lean)
curl -X POST "http://localhost:8216/seed?mode=lean"
Saída esperada:
"Lean seed completed. 4 Pharmacies. Users: 13. Pass: 123456 (admin: admin123)"
Opção B: Resetar e Criar Dados de Carga (Full)
curl -X POST "http://localhost:8216/seed"
⚡ Fluxo Recomendado de Trabalho
- Pare o backend principal (
backend-go) para liberar conexões com o banco. - Rode o seeder:
go run main.goem um terminal. - Dispare o curl:
curl -X POST "http://localhost:8216/seed?mode=lean". - Pare o seeder (Ctrl+C).
- Inicie o backend principal novamente.
- Faça login no painel com
dono1/123456.