# 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** apenas as tabelas `companies` e `products`
3. **NÃO RECRIA** a tabela `users` - você precisa reiniciar o backend após usar o seeder

## 🎯 Propósito

Gerar dados de teste para o marketplace SaveInMed, criando:
- **400 farmácias** na região de Anápolis/GO
- **20-500 produtos** por farmácia
- Dados variados de medicamentos com preços e validades realistas

## 🏗️ 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
```

## 📍 Dados Gerados

### Localização
- Centro em **Anápolis, GO** (Lat: -16.3281, Lng: -48.9530)
- Variação de ~5km para cada farmácia

### Farmácias
- **Quantidade**: 400 empresas
- **Categoria**: `farmacia`
- **70%** verificadas (`is_verified = true`)
- CNPJs gerados automaticamente

### Produtos (Medicamentos)
- **20-500 produtos** por farmácia
- **Categorias**: Analgésicos, Antibióticos, Anti-inflamatórios, Cardiovasculares, Dermatológicos, Vitaminas, Oftálmicos, Respiratórios, etc.
- **Validade**: 30 dias a 2 anos
- **Variação de preço**: -20% a +30% do preço base

## 🔧 Variáveis de Ambiente

```bash
DATABASE_URL=postgres://user:password@host:port/dbname?sslmode=disable
PORT=8216  # Porta padrão do seeder
```

## 🚀 Uso

### Executar Localmente

```bash
# Configurar DATABASE_URL
export DATABASE_URL=postgres://postgres:postgres@localhost:5432/saveinmed?sslmode=disable

# Executar
go run main.go
```

### Endpoint

```bash
# Iniciar seeding
POST http://localhost:8216/seed

# Resposta de sucesso
{
  "tenants": 400,
  "products": 85432,
  "location": "Anápolis, GO"
}
```

## ⚡ Fluxo de Uso Recomendado

1. **Parar o backend principal** (para evitar conflitos de conexão)
2. **Executar o seeder**: `curl -X POST http://localhost:8216/seed`
3. **Reiniciar o backend** (para aplicar migrations e recriar tabela `users`)
4. A API estará pronta com dados de teste

## 🐳 Docker

```bash
# Build
docker build -t saveinmed-seeder:latest .

# Run
docker run -p 8216:8216 \
  -e DATABASE_URL=postgres://user:password@host:5432/saveinmed \
  saveinmed-seeder:latest

# Seed
curl -X POST http://localhost:8216/seed
```

## 📝 Notas

- Os dados são **regeneráveis** - execute novamente para limpar e recriar
- Ideal para ambientes de **desenvolvimento** e **staging**
- **NÃO USE EM PRODUÇÃO** - vai apagar todos os dados reais!

## 📝 Licença

MIT
