# Seeder API

[![Node.js](https://img.shields.io/badge/Node.js-20-339933?style=flat-square&logo=node.js)](https://nodejs.org/)
[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-16-336791?style=flat-square&logo=postgresql)](https://postgresql.org/)

Microserviço para popular o banco de dados com dados realistas de teste.

> **Last Updated:** 2024-12-26

---

## 📊 Dados Gerados

| Entidade | Quantidade | Descrição |
|----------|------------|-----------|
| **SuperAdmin** | 1 | Usuário administrador do sistema |
| **Empresas Tech** | 30 | TechCorp, DataFlow, AIVentures, FinTechPro... |
| **Empresas Fictícias** | 13 | ACME, Stark, Los Pollos, Wayne, Umbrella... |
| **Admins/Recruiters** | 8+ | Usuários de empresas |
| **Candidatos** | 30 | Job seekers de várias nacionalidades |
| **Vagas** | 1129+ | 990 normais + 69 ACME + 70 fictícias + épicas |
| **Candidaturas** | 20 | Aplicações de exemplo |
| **Países** | 250+ | World countries (ISO) |
| **Regiões/Estados** | 5000+ | States/Provinces worldwide |
| **Cidades** | 150000+ | Cities from database dump |

---

## 🚀 Scripts Disponíveis

| Comando | Descrição |
|---------|-----------|
| `npm run seed` | Popula todas as tabelas |
| `npm run seed:reset` | Limpa e repopula tudo |
| `npm run seed:users` | Apenas usuários |
| `npm run seed:companies` | Apenas empresas |
| `npm run seed:jobs` | Apenas vagas |
| `npm run migrate` | Executa migrations SQL |
| `npm run load:locations` | Carrega países, regiões e cidades |
| `npm run verify:login` | Testa login de usuários criados |

---

## 🌍 Regiões e Cidades

### 🇧🇷 Brasil
- **São Paulo (SP)**: São Paulo, Campinas, Santos
- **Rio de Janeiro (RJ)**
- **Minas Gerais (MG)**

### 🇺🇸 Estados Unidos
- **California (CA)**: San Francisco, Los Angeles, Palo Alto
- **New York (NY)**
- **Texas (TX)**

### 🇯🇵 Japão
- **Tokyo (13)**: Shinjuku, Shibuya
- **Osaka (27)**

---

## 🏭 ACME Corporation

> "Se não explodir, não é ACME!" ™

A ACME Corp é nossa empresa especial com **69 vagas de tecnologia com humor**, inspirada nos clássicos Looney Tunes. 

### Destaques das Vagas ACME:
- 🚀 Engenheiro de Software de Foguetes Portáteis
- 💣 Dev de TNT Inteligente  
- 🕳️ Arquiteto de Túneis Instantâneos
- 📊 Data Scientist de Previsão de Falhas (Accuracy: 100%)
- 🦅 ML Engineer de Detecção de Papa-Léguas (Precision: 0%)
- 💥 Chief Explosion Officer (CEO)
- 🎨 UX Designer de Dinamite
- E mais 62 vagas hilárias...

---

## 🦸 Stark Industries (Marvel)

> "Changing the World for a Better Tomorrow"

**8 vagas** de alta tecnologia no universo Marvel:
- ☁️ Arquiteto de Cloud para J.A.R.V.I.S.
- ⚡ DevOps Engineer do Arc Reactor
- 🤖 ML Engineer para Iron Man Suits
- 🛡️ Security Engineer Anti-Hydra
- 🔬 Nanotechnology Software Engineer

**Sede:** Stark Tower, Manhattan, NY

---

## 🐔 Los Pollos Hermanos (Breaking Bad)

> "Taste the Family!"

**4 vagas** para quem gosta de discrição absoluta:
- 🔒 Engenheiro de Redes Air-Gapped
- 👻 Dev Fullstack de Logística Fantasma
- 🎯 Pentester Especialista em Segurança Ofensiva
- 🗄️ DBA com Expertise em Data Purge

**CEO:** Gustavo Fring  
**Nota:** NDA de 847 páginas obrigatório

---

## ☢️ Springfield Nuclear Power Plant (Simpsons)

> "Excellent..."

**4 vagas** com orçamento mínimo do Sr. Burns:
- 💾 Administrador de Sistemas COBOL/Mainframe (desde 1970)
- 🐘 Dev Fullstack Low Cost (PHP 4 / jQuery)
- 📹 Especialista em Cyber-Segurança e Vigilância
- 📊 Engenheiro de Dados e Analytics de Produtividade

**CEO:** C. Montgomery Burns (103 anos)  
**Inspetor de Segurança:** Homer J. Simpson

---

## 🛒 Buy n Large (Wall-E)

> "BnL - Everything You Need!"

**3 vagas** para a nave Axiom:
- 🧠 Engenheiro de Automação de Consumo
- ☁️ Arquiteto de Nuvem Estelar
- 🌈 Desenvolvedor Front-end de Hologramas

**Status:** 700 anos servindo a humanidade

---

## 🤖 Cyberdyne Systems (Terminator)

> "Building a Better Tomorrow... Today"

**3 vagas** para quem não tem medo de IA:
- 🧠 Engenheiro de ML (Skynet Core)
- 🔓 Especialista em Cibersegurança Ofensiva
- ⚙️ Desenvolvedor de Firmware para T-800

**Produto:** Skynet Defense System (puramente acadêmico 😉)

---

## 🍫 Wonka Industries (Charlie and the Chocolate Factory)

> "Scrumdiddlyumptious!"

**3 vagas** com chocolate ilimitado:
- 🎫 Desenvolvedor Web de Gamificação (Golden Ticket)
- 🍬 Engenheiro de IoT (Internet of Treats)
- 🎛️ Tech Lead de Automação (Oompa-Loompa Tech)

**CEO:** Willy Wonka

---

## 🦇 Wayne Enterprises (Batman)

> "Building a Better Gotham"

**3 vagas** em Gotham City:
- 🦇 Desenvolvedor de Software Embarcado (Bat-Suite)
- 📊 Analista de Big Data (Vigilância Urbana)
- ⚙️ DevOps Engineer (Bat-Cave Infra)

**CEO:** Bruce Wayne  
**Nota:** Funcionários não têm acesso à Bat-Caverna

---

## ✈️ Oceanic Airlines (Lost)

> "Fly the Friendly Skies"

**3 vagas** com destino incerto:
- ✈️ Engenheiro de Sistemas de Voo (Black Box)
- 💻 Desenvolvedor Fullstack (Booking System)
- 🆘 Especialista em Recuperação de Desastres

**Flight 815?** Never heard of it.

---

## 🦖 InGen / Jurassic Park

> "We Make Your Wildest Dreams Come True"

**3 vagas** em Isla Nublar:
- 🧬 Bio-Informata (Sequenciamento de DNA)
- 🔌 Administrador de Redes (Sistemas de Cercas)
- 🦕 Engenheiro de IA (Padrões de Comportamento de Raptors)

**Disclaimer:** "Life, uh, finds a way."

---

## 🦐 Bubba Gump Shrimp Co. (Forrest Gump)

> "Run, Forrest, Run!"

**3 vagas** com muito camarão:
- 🛒 Desenvolvedor de E-commerce (Shrimp-Shop)
- 🚢 Analista de Logística e Supply Chain
- 📈 Engenheiro de Dados (Sales Analytics)

**Produtos:** 500+ formas de preparar camarão

---

## ☣️ Umbrella Corporation (Resident Evil)

> "Obedience Breeds Discipline"

**3 vagas** com NDA obrigatório:
- 👑 Engenheiro de Sistemas de Contenção (Red Queen AI)
- 💻 Desenvolvedor Fullstack (Monitoramento Biométrico)
- 🔐 Especialista em Segurança de Dados (Evidence Scrubbing)

**Benefício:** Kit de primeiros socorros (Erva Verde) e máscara de gás

---

## 🏪 Sprawl-Mart (Paródia Distópica)

> "Save Money. Lose Soul."

**30 vagas** que você não vai querer:
- 💾 DBA de SQL Server 2000 (servidor faz barulho de helicóptero)
- 📞 Engenheiro de Redes Dial-up (56kbps de pura velocidade)
- 🖥️ Técnico de Manutenção de PDV MS-DOS
- 👁️ Desenvolvedor de Algoritmo de Pausa de Banheiro
- 🕵️ Especialista em Keylogger Corporativo
- 📄 Backend Dev Node.js (arquivo único de 50k linhas)
- 🌐 Frontend Dev (IE6 Compatibility)
- 🤖 Engenheiro de Prompt para Demissões
- 💀 CTO de Contingência (Bode Expiatório)
- E mais 21 vagas distópicas...

**Motto:** "Sempre o menor preço. Sempre o menor salário."

---

## 🚀 Uso

### Instalação

```bash
cd seeder-api
npm install
```

### Configuração

Crie um `.env` baseado no `.env.example`:

```env
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASSWORD=yourpassword
DB_NAME=gohorsejobs

# MUST match backend PASSWORD_PEPPER
PASSWORD_PEPPER=your-pepper-value
```

> ⚠️ **IMPORTANTE**: O `PASSWORD_PEPPER` deve ser idêntico ao configurado no backend. Caso contrário, os usuários criados pelo seeder não conseguirão fazer login.

### Comandos

| Comando | Descrição |
|---------|-----------|
| `npm run seed` | Popula todas as tabelas |
| `npm run seed:reset` | Limpa e repopula tudo |
| `npm run seed:users` | Apenas usuários |
| `npm run seed:companies` | Apenas empresas |
| `npm run seed:jobs` | Apenas vagas |

---

## 🔑 Credenciais Geradas

### SuperAdmin
- **Login**: `superadmin`
- **Senha**: `Admin@2025!`

### Admin de Empresa (todos usam mesma senha)
- **Login**: `takeshi_yamamoto` (TechCorp)
- **Login**: `kenji@appmakers.mobile` (AppMakers)
- **Senha**: `Takeshi@2025`

### Recrutador
- **Login**: `maria_santos` (DesignHub)
- **Senha**: `User@2025`

### 🐺 Wile E. Coyote (ACME Corp)
- **Login**: `wile_e_coyote`
- **Senha**: `MeepMeep@123`
- **Empresa**: ACME Corporation
- **Cargo**: HR Manager & Chief Failure Officer

### Candidatos (todos usam mesma senha)
- **Login**: `paulo_santos`
- **Login**: `maria@email.com`
- **Login**: `ana_silva`, `carlos_santos`, `maria_oliveira`, `pedro_costa`, `juliana_ferreira`
- **Senha**: `User@2025`

---

## 📁 Estrutura

```
src/
├── index.js              # Entrypoint principal
├── config.js             # Configuração de BD
├── db.js                 # Pool de conexões
└── seeders/
    ├── users.js          # Seed de usuários
    ├── companies.js      # Seed de 30 empresas tech
    ├── jobs.js           # Seed de vagas normais
    ├── acme.js           # 🏭 ACME Corp + 69 vagas Looney Tunes
    ├── fictional-companies.js  # 🎬 Stark, Los Pollos, Springfield
    ├── epic-companies.js # 🌟 BNL, Cyberdyne, Wonka, Wayne, Oceanic, InGen, Bubba Gump, Umbrella, Sprawl-Mart
    ├── regions.js        # Seed de regiões (BR, US, JP)
    ├── cities.js         # Seed de cidades
    ├── applications.js   # Seed de candidaturas
    └── notifications.js  # Seed de notificações
```

---

## ⚠️ Importante

- Execute as **migrations** antes do seed
- Use apenas em ambiente de **desenvolvimento**
- Senhas padrão são **apenas para testes**
- **ACME não se responsabiliza** por lesões causadas por produtos falhos 🐺
- **Umbrella Corporation** não se responsabiliza por surtos virais ☣️
- **Sprawl-Mart** não se responsabiliza por sua alma 🏪
