- Move logo to marketplace/src/assets/ - Apply logo in Shell.tsx header - Add favicon and meta tags to index.html - Create docs/database-schema.md with ER diagram - Update README.md with database section - Update marketplace/README.md with assets section - Update seeder-api/README.md with new fields |
||
|---|---|---|
| .. | ||
| docs | ||
| pkg/seeder | ||
| .env.example | ||
| .gitignore | ||
| Dockerfile | ||
| 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.
Campos da Tabela companies
O seeder cria a tabela companies com os seguintes campos:
| Campo | Tipo | Descrição |
|---|---|---|
phone |
TEXT | Telefone de contato |
operating_hours |
TEXT | Horário de funcionamento |
is_24_hours |
BOOLEAN | Se funciona 24h |
Para schema completo, veja docs/database-schema.md
🎯 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
Use o arquivo .env.example como base e configure as variáveis:
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"
📜 Swagger/OpenAPI
O documento OpenAPI está disponível em:
curl http://localhost:8216/swagger.json
🐳 Docker (imagem otimizada)
Build:
docker build -t saveinmed-seeder-api .
Run:
docker run --rm -p 8216:8080 --env-file .env saveinmed-seeder-api
⚡ 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.