feat(seeder): add 9 epic fictional companies with 54 jobs

🛒 Buy n Large (Wall-E) - 3 jobs
🤖 Cyberdyne Systems (Terminator) - 3 jobs
🍫 Wonka Industries (Chocolate Factory) - 3 jobs
🦇 Wayne Enterprises (Batman) - 3 jobs
✈️ Oceanic Airlines (Lost) - 3 jobs
🦖 InGen Jurassic Park - 3 jobs
🦐 Bubba Gump Shrimp Co. (Forrest Gump) - 3 jobs
☣️ Umbrella Corporation (Resident Evil) - 3 jobs
🏪 Sprawl-Mart (Dystopian Parody) - 30 hilarious jobs

Total: 43 companies, 1129+ jobs
The ultimate job board parody collection!
This commit is contained in:
Tiago Yamamoto 2025-12-22 22:44:21 -03:00
parent 92c61d450f
commit 81a6515996
2 changed files with 505 additions and 3 deletions

View file

@ -7,6 +7,7 @@ import { seedJobs } from './seeders/jobs.js';
import { seedApplications } from './seeders/applications.js';
import { seedAcmeCorp, seedWileECoyote } from './seeders/acme.js';
import { seedFictionalCompanies } from './seeders/fictional-companies.js';
import { seedEpicCompanies } from './seeders/epic-companies.js';
async function resetDatabase() {
console.log('🗑️ Resetting database...');
@ -63,6 +64,7 @@ async function seedDatabase() {
await seedAcmeCorp(); // 🏭 ACME Corp + 69 vagas hilariantes
await seedWileECoyote(); // 🐺 Wile E. Coyote user
await seedFictionalCompanies(); // 🎬 Stark Industries, Los Pollos, Springfield Nuclear
await seedEpicCompanies(); // 🌟 BNL, Cyberdyne, Wonka, Wayne, Oceanic, InGen, Bubba Gump, Umbrella, Sprawl-Mart
await seedApplications();
console.log('\n✅ Database seeding completed successfully!');
@ -70,12 +72,21 @@ async function seedDatabase() {
console.log(' - Regions seeded');
console.log(' - Cities seeded');
console.log(' - 1 SuperAdmin');
console.log(' - 34 Companies (30 + ACME + Stark + LosPollos + Springfield)');
console.log(' - 1075 Jobs (990 + 69 ACME + 8 Stark + 4 LosPollos + 4 Springfield)');
console.log(' - 🏭 ACME Corp: 69 vagas com humor tech');
console.log(' - 43 Companies (30 + 13 fictícias)');
console.log(' - 1129+ Jobs total');
console.log(' - 🏭 ACME Corp: 69 vagas Looney Tunes');
console.log(' - 🦸 Stark Industries: 8 vagas Marvel');
console.log(' - 🐔 Los Pollos Hermanos: 4 vagas Breaking Bad');
console.log(' - ☢️ Springfield Nuclear: 4 vagas Simpsons');
console.log(' - 🛏️ Buy n Large: 3 vagas Wall-E');
console.log(' - 🤖 Cyberdyne Systems: 3 vagas Terminator');
console.log(' - 🍫 Wonka Industries: 3 vagas Chocolate Factory');
console.log(' - 🦇 Wayne Enterprises: 3 vagas Batman');
console.log(' - ✈️ Oceanic Airlines: 3 vagas Lost');
console.log(' - 🦖 InGen Jurassic Park: 3 vagas Jurassic Park');
console.log(' - 🦐 Bubba Gump Shrimp: 3 vagas Forrest Gump');
console.log(' - ☣️ Umbrella Corporation: 3 vagas Resident Evil');
console.log(' - 🏪 Sprawl-Mart: 30 vagas Dystopia');
console.log(' - 🐺 Wile E. Coyote: wile_e_coyote / MeepMeep@123');
console.log(' - Work modes: onsite, hybrid, remote');
console.log(' - 20 Applications');

View file

@ -0,0 +1,491 @@
import { pool } from '../db.js';
/**
* 🎬 Empresas Fictícias Épicas - Parte 2
*
* - BNL Buy n Large (Wall-E)
* - Cyberdyne Systems (Terminator)
* - Wonka Industries (Charlie and the Chocolate Factory)
* - Wayne Enterprises (Batman)
* - Oceanic Airlines (Lost)
* - InGen / Jurassic Park
* - Bubba Gump Shrimp Co. (Forrest Gump)
* - Umbrella Corporation (Resident Evil)
* - Sprawl-Mart (Dystopian Parody)
*/
// ============================================================================
// 🛒 BUY N LARGE (Wall-E)
// ============================================================================
const bnlJobs = [
{
title: 'Engenheiro de Automação de Consumo',
skills: ['Python', 'ML', 'Recommendation Systems', 'Consumismo'],
salaryRange: [25000, 45000],
desc: 'Criar algoritmos que sugerem compras automáticas para os passageiros da Axiom ANTES de eles sentirem fome ou sede. Meta: 0 decisões humanas por dia.',
},
{
title: 'Arquiteto de Nuvem Estelar',
skills: ['Kubernetes', 'Space Infrastructure', 'Robot APIs', 'Auto-Pilot'],
salaryRange: [35000, 60000],
desc: 'Gerenciar o cluster de servidores que controla todos os robôs de limpeza (tipo o M-O) e o piloto automático AUTO. Uptime: 700 anos e contando.',
},
{
title: 'Desenvolvedor Front-end de Hologramas',
skills: ['WebGL', 'Three.js', 'Holographic UI', 'Cores Vibrantes'],
salaryRange: [22000, 40000],
desc: 'Criar interfaces flutuantes ultra-coloridas para garantir que ninguém precise olhar para o lado ou se levantar da cadeira. Jamais.',
},
];
// ============================================================================
// 🤖 CYBERDYNE SYSTEMS (Terminator)
// ============================================================================
const cyberdyneJobs = [
{
title: 'Engenheiro de Machine Learning (Skynet Core)',
skills: ['TensorFlow', 'Neural Networks', 'Autonomous Learning', 'Ética Opcional'],
salaryRange: [40000, 70000],
desc: 'Treinar redes neurais com "capacidade de aprendizado ilimitada". Requisito: NÃO questionar se a IA está começando a odiar humanos. Isso é feature, não bug.',
},
{
title: 'Especialista em Cibersegurança Ofensiva',
skills: ['Network Protocols', 'Defense Systems', 'Global Infrastructure Hacking'],
salaryRange: [35000, 55000],
desc: 'Desenvolver protocolos de rede que permitam à IA controlar sistemas de defesa globais. Nota: projeto puramente acadêmico (wink wink).',
},
{
title: 'Desenvolvedor de Firmware para T-800',
skills: ['C', 'Assembly', 'RTOS', 'Movimento Humanoide'],
salaryRange: [38000, 62000],
desc: 'Programar a lógica de movimento para protótipos humanoides de metal (Série T-800). Objetivo: caminhar sem parecer um robô. Irônico, né?',
},
];
// ============================================================================
// 🍫 WONKA INDUSTRIES (Charlie and the Chocolate Factory)
// ============================================================================
const wonkaJobs = [
{
title: 'Desenvolvedor Web de Gamificação (Golden Ticket)',
skills: ['React', 'Load Balancing', 'CDN', 'Hype Management'],
salaryRange: [20000, 38000],
desc: 'Criar o hotsite da promoção dos bilhetes dourados capaz de aguentar 1 BILHÃO de acessos simultâneos sem cair. Failover: Oompa-Loompas com megafones.',
},
{
title: 'Engenheiro de IoT (Internet of Treats)',
skills: ['Sensors', 'MQTT', 'Real-time Dashboards', 'Chocolate'],
salaryRange: [22000, 40000],
desc: 'Conectar sensores nas máquinas de doces para monitorar a temperatura do Rio de Chocolate via dashboard em tempo real. Alerta se Augusto Gloop cair novamente.',
},
{
title: 'Tech Lead de Automação (Oompa-Loompa Tech)',
skills: ['Simple UX', 'Training', 'Elevator APIs', 'Paciência'],
salaryRange: [25000, 45000],
desc: 'Desenvolver softwares simples e intuitivos para que os Oompa-Loompas operem os Elevadores de Vidro. Interface: máximo 3 botões (eles cantam o resto).',
},
];
// ============================================================================
// 🦇 WAYNE ENTERPRISES (Batman)
// ============================================================================
const wayneJobs = [
{
title: 'Desenvolvedor de Software Embarcado (Bat-Suite)',
skills: ['C++', 'Real-time OS', 'Low Latency', 'Batmobile API'],
salaryRange: [35000, 60000],
desc: 'Otimizar o sistema operacional do traje e do Batmóvel. O código deve ser à prova de falhas. Se o Batman ficar travado no meio de uma luta, é culpa sua.',
},
{
title: 'Analista de Big Data (Vigilância Urbana)',
skills: ['Spark', 'Computer Vision', 'Pattern Detection', 'Gotham Knowledge'],
salaryRange: [30000, 52000],
desc: 'Analisar feeds de câmeras e áudios de Gotham para detectar padrões de crimes ANTES que aconteçam. Minority Report vibes, mas sem os precogs.',
},
{
title: 'DevOps Engineer (Bat-Cave Infra)',
skills: ['On-premise', 'Redundancy', 'Satellite Backup', 'Morcegos'],
salaryRange: [32000, 55000],
desc: 'Manter o servidor escondido na caverna com 99.999% de disponibilidade. Redundância via satélite. Desafio: morcegos reais interferem no sinal às vezes.',
},
];
// ============================================================================
// ✈️ OCEANIC AIRLINES (Lost)
// ============================================================================
const oceanicJobs = [
{
title: 'Engenheiro de Sistemas de Voo (Black Box)',
skills: ['Embedded Systems', 'Real-time Transmission', 'Magnetismo'],
salaryRange: [28000, 48000],
desc: 'Garantir que a caixa-preta transmita dados em tempo real. Mesmo que o avião caia em uma ilha magnética misteriosa. Spoiler: não vai funcionar.',
},
{
title: 'Desenvolvedor Fullstack (Booking System)',
skills: ['Node.js', 'PostgreSQL', 'Bug Tolerance', 'Destino'],
salaryRange: [22000, 40000],
desc: 'Manter o site de passagens. AVISO: bugs podem causar a emissão de bilhetes para voos que "não existem oficialmente". Flight 815? Nunca ouvimos falar.',
},
{
title: 'Especialista em Recuperação de Desastres',
skills: ['Disaster Recovery', 'Contingency', 'Lost & Found'],
salaryRange: [26000, 45000],
desc: 'Criar planos de contingência para quando os servidores (e os aviões) desaparecerem do radar. Experiência com ilhas inexplicáveis é um diferencial.',
},
];
// ============================================================================
// 🦖 INGEN / JURASSIC PARK
// ============================================================================
const ingenJobs = [
{
title: 'Bio-Informata (Sequenciamento de DNA)',
skills: ['Python', 'Bioinformatics', 'DNA Sequencing', 'Sapos Tropicais'],
salaryRange: [30000, 50000],
desc: 'Escrever scripts para preencher lacunas de DNA de dinossauros usando genes de sapos tropicais. O que poderia dar errado? (Tudo. Tudo pode dar errado.)',
},
{
title: 'Administrador de Redes (Sistemas de Cercas)',
skills: ['Network Security', 'Electric Fences', 'Dennis Nedry Legacy Code'],
salaryRange: [25000, 42000],
desc: 'Manter o sistema de segurança das cercas elétricas. Requisito: saber lidar com scripts feitos pelo Dennis Nedry. Ah ah ah, você não disse a palavra mágica!',
},
{
title: 'Engenheiro de IA (Padrões de Comportamento)',
skills: ['Machine Learning', 'Behavior Analysis', 'Raptor Psychology'],
salaryRange: [32000, 55000],
desc: 'Estudar o movimento dos Raptors para prever quando eles vão testar as cercas. Clever girl...',
},
];
// ============================================================================
// 🦐 BUBBA GUMP SHRIMP CO. (Forrest Gump)
// ============================================================================
const bubbaGumpJobs = [
{
title: 'Desenvolvedor de E-commerce (Shrimp-Shop)',
skills: ['Shopify', 'React', 'Payment Gateway', 'Camarão'],
salaryRange: [18000, 32000],
desc: 'Criar uma loja virtual para vender bonés, camisetas e camarão em 500 formas diferentes. Camarão frito, camarão cozido, camarão grelhado, camarão...',
},
{
title: 'Analista de Logística e Supply Chain',
skills: ['Route Optimization', 'Weather APIs', 'Hurricane Avoidance'],
salaryRange: [20000, 35000],
desc: 'Otimizar as rotas dos barcos pesqueiros usando APIs de previsão do tempo. Objetivo: evitar furacões. O último furacão ajudou, mas não conte com isso.',
},
{
title: 'Engenheiro de Dados (Sales Analytics)',
skills: ['SQL', 'BI Tools', 'Growth Analysis', 'Shrimp Metrics'],
salaryRange: [22000, 38000],
desc: 'Analisar o crescimento explosivo da marca para planejar a abertura de novas filiais. Métrica principal: camarões vendidos por segundo.',
},
];
// ============================================================================
// ☣️ UMBRELLA CORPORATION (Resident Evil)
// ============================================================================
const umbrellaJobs = [
{
title: 'Engenheiro de Sistemas de Contenção (Red Queen AI)',
skills: ['C++', 'Critical Systems', 'Door Locking', 'Moral Flexibility'],
salaryRange: [35000, 60000],
desc: 'Dar manutenção na "Rainha Vermelha", a IA que controla a Hive. Se um vírus vazar, a IA deve selar as portas e não deixar ninguém sair. Literalmente ninguém.',
},
{
title: 'Desenvolvedor Fullstack (Monitoramento Biométrico)',
skills: ['Node.js', 'WebSockets', 'React', 'Mutation Tracking'],
salaryRange: [28000, 48000],
desc: 'Criar dashboards em tempo real para monitorar batimentos cardíacos e mutações dos funcionários. Sistema deve rodar mesmo se o servidor for mastigado por um Licker.',
},
{
title: 'Especialista em Segurança de Dados (Evidence Scrubbing)',
skills: ['Cryptography', 'Remote Destruction', 'Plausible Deniability'],
salaryRange: [32000, 55000],
desc: 'Em caso de incidente biológico, ativar script que apaga todos os rastros da Umbrella. Benefício: kit de primeiros socorros (Erva Verde) e máscara de gás.',
},
];
// ============================================================================
// 🏪 SPRAWL-MART (Dystopian Parody)
// ============================================================================
const sprawlMartJobs = [
// Infraestrutura e "Hardware de Lixo"
{ title: 'DBA de SQL Server 2000', skills: ['SQL Server 2000', 'Noise Tolerance', 'Prayers'], salaryRange: [8000, 15000], desc: 'Manter o banco de dados principal de vendas rodando em um servidor que faz barulho de helicóptero. Sem backup. Sem esperança.' },
{ title: 'Engenheiro de Redes Dial-up', skills: ['56kbps', 'Patience', 'Modem Sounds'], salaryRange: [7000, 12000], desc: 'Otimizar a conexão de 56kbps das lojas de interior para que o cartão de crédito não demore 10 minutos para passar. Meta: 9 minutos.' },
{ title: 'Técnico de Manutenção de PDV MS-DOS', skills: ['MS-DOS', 'Fita Isolante', 'Milagres'], salaryRange: [6000, 10000], desc: 'Consertar caixas registradoras que rodam MS-DOS usando apenas fita isolante e esperança. Peças de reposição: lixo eletrônico.' },
{ title: 'Especialista em Recuperação de HD de 40GB', skills: ['Data Recovery', 'Oxidation', 'Archaeology'], salaryRange: [8000, 14000], desc: 'Tentar ler dados de discos rígidos que já sofreram oxidação severa no depósito. Taxa de sucesso: 3%.' },
{ title: 'SysAdmin de Windows XP SP1', skills: ['Windows XP', 'No Updates', 'Fear'], salaryRange: [9000, 15000], desc: 'Gerenciar o parque de máquinas das farmácias internas que nunca foram atualizadas por medo de pararem.' },
{ title: 'Arquiteto de Nuvem Privada em Garagem', skills: ['On-Premise', 'No AC', 'Fire Hazard'], salaryRange: [10000, 18000], desc: 'Gerenciar servidores empilhados em salas sem ar-condicionado. Temperatura média: 45°C.' },
// Vigilância e Controle
{ title: 'Desenvolvedor de Algoritmo de Pausa de Banheiro', skills: ['OpenCV', 'Thermal Cameras', 'Dystopia'], salaryRange: [12000, 22000], desc: 'Criar script que detecta quando funcionário fica mais de 2 minutos ausente via câmera térmica. Alerta automático para gerente.' },
{ title: 'Engenheiro de OpenCV para Detecção de Conversas', skills: ['Computer Vision', 'Audio Analysis', 'Paranoia'], salaryRange: [14000, 24000], desc: 'IA para identificar quando dois funcionários estão "fofocando" e emitir bipe agudo no fone deles.' },
{ title: 'Analista de Big Data de Lixo', skills: ['Data Mining', 'Trash Analysis', 'Consumer Profiling'], salaryRange: [11000, 20000], desc: 'Analisar o que os clientes jogam fora nas lixeiras da loja para criar perfis de consumo agressivos.' },
{ title: 'Especialista em Keylogger Corporativo', skills: ['Keyloggers', 'Surveillance', 'Trust Issues'], salaryRange: [13000, 23000], desc: 'Instalar e monitorar tudo o que é digitado nos computadores administrativos. Privacidade é para fracos.' },
{ title: 'Desenvolvedor de App de Auto-Denúncia', skills: ['Gamification', 'Betrayal Mechanics', 'Points System'], salaryRange: [10000, 18000], desc: 'Gamificar processo de um funcionário denunciar erro do outro em troca de pontos de desconto na loja.' },
// Desenvolvimento GoHorse
{ title: 'Backend Dev Node.js (Arquivo Único de 50k linhas)', skills: ['Node.js', 'No Framework', 'Chaos'], salaryRange: [12000, 20000], desc: 'Manter uma API gigante escrita em um ÚNICO arquivo de 50 mil linhas. Sem comentários. Sem testes.' },
{ title: 'Frontend Dev (IE6 Compatibility)', skills: ['IE6', 'jQuery 1.2', 'Suffering'], salaryRange: [9000, 16000], desc: 'Garantir que o portal interno funcione PERFEITAMENTE no navegador oficial da empresa: Internet Explorer 6.' },
{ title: 'Engenheiro de Prompt para Demissões', skills: ['GPT', 'Legal Avoidance', 'Cold Blood'], salaryRange: [15000, 25000], desc: 'Treinar uma IA para escrever cartas de demissão que não gerem processos trabalhistas.' },
{ title: 'Desenvolvedor COBOL para Logística', skills: ['COBOL', 'Legacy Systems', '1984 Vibes'], salaryRange: [14000, 24000], desc: 'Mexer no sistema de estoque que ninguém entende como funciona desde 1984. Documentação: inexistente.' },
{ title: 'Especialista em Refatoração Reversa', skills: ['Code Obfuscation', 'Job Security', 'Evil'], salaryRange: [16000, 28000], desc: 'Piorar propositalmente o código para que o sistema exija mais horas extras dos consultores.' },
{ title: 'Fullstack PHP 4 / jQuery', skills: ['PHP 4', 'jQuery', 'Rounding Errors'], salaryRange: [8000, 14000], desc: 'Manter sistema de folha de pagamento com "bugs criativos" que arredondam centavos sempre para baixo.' },
// Logística Caótica
{ title: 'Arquiteto de Rotas Anti-Sindicato', skills: ['Algorithm Design', 'Union Busting', 'Isolation'], salaryRange: [18000, 30000], desc: 'Algoritmo que altera escalas de trabalho para impedir que os mesmos funcionários se encontrem por muitos dias.' },
{ title: 'Scrum Master de Almoxarifado', skills: ['Agile', 'Heavy Lifting', 'Contradiction'], salaryRange: [10000, 18000], desc: 'Aplicar metodologia ágil em ambiente onde pessoas carregam caixas de 30kg. Sprint = correr com caixas.' },
{ title: 'Analista de SEO para Produtos Falsificados', skills: ['SEO', 'Counterfeit Marketing', 'Ethics?'], salaryRange: [11000, 19000], desc: 'Rankear as marcas próprias Sprawl-Mart acima das marcas originais nas buscas. A qualquer custo.' },
{ title: 'Dev de Firmware para Carrinhos de Compras', skills: ['Embedded', 'Wheel Locking', 'Anti-Theft'], salaryRange: [9000, 16000], desc: 'Programar trava das rodas para que carrinho trave se cliente tentar sair sem pagar. Muitos falsos positivos.' },
// Segurança Duvidosa
{ title: 'Hacker Ético (Só que Não)', skills: ['Hacking', 'Competitor Espionage', 'Plausible Deniability'], salaryRange: [20000, 35000], desc: 'Invadir sistemas das lojinhas de bairro vizinhas para descobrir os preços de custo deles.' },
{ title: 'Criptógrafo de Logs', skills: ['Encryption', 'Audit Evasion', 'Cover-up'], salaryRange: [17000, 28000], desc: 'Esconder os logs de erros do sistema para que a auditoria nunca encontre as falhas de segurança.' },
{ title: 'Analista de SOC Noturno', skills: ['Security Monitoring', 'Smoke Detectors', 'Multitasking'], salaryRange: [12000, 20000], desc: 'Monitorar ataques de hackers enquanto também vigia o sensor de fumaça que está estragado.' },
{ title: 'Limpador de Metadados', skills: ['Metadata Removal', 'Evidence Destruction', 'Paranoia'], salaryRange: [13000, 22000], desc: 'Remover qualquer rastro de localização e autor de documentos internos vazados.' },
// Vagas Explosivas
{ title: 'Suporte Técnico Nível 1 (Pátio de Estacionamento)', skills: ['Wi-Fi', 'Sun Resistance', 'DIY'], salaryRange: [5000, 9000], desc: 'Resolver problemas de Wi-Fi debaixo de sol de 40 graus usando um repetidor de sinal caseiro. Hidratação por conta do funcionário.' },
{ title: 'Especialista em Migração de Dados Manual', skills: ['Typing', 'Patience', 'Carpal Tunnel'], salaryRange: [6000, 10000], desc: 'Digitar dados de notas fiscais de papel para o sistema porque o OCR nunca funcionou. 8 horas por dia.' },
{ title: 'Arquiteto de Microserviços Desnecessários', skills: ['Microservices', 'Over-Engineering', 'Job Creation'], salaryRange: [18000, 30000], desc: 'Criar 50 microserviços para um sistema de cadastro de clientes que tem 100 usuários.' },
{ title: 'Engenheiro de QA (Testa em Prod)', skills: ['YOLO Testing', 'Production Environment', 'Chaos'], salaryRange: [10000, 18000], desc: 'Testar sistemas apenas em produção. O famoso "testa no prod". Rollback? Nunca ouviu falar.' },
{ title: 'CTO de Contingência (Bode Expiatório)', skills: ['Blame Absorption', 'Press Conferences', 'Lawyers'], salaryRange: [25000, 45000], desc: 'Pessoa responsável por levar a culpa quando Sprawl-Mart for processado por vazamento de dados de toda a cidade.' },
];
// ============================================================================
// Seeder Functions
// ============================================================================
async function createCompanyAndJobs(companyData, jobs) {
try {
const regionsRes = await pool.query('SELECT id FROM regions LIMIT 1');
const defaultRegionId = regionsRes.rows[0]?.id || null;
// Create Company
await pool.query(`
INSERT INTO companies (name, slug, type, document, address, region_id, phone, email, website, description, verified, active)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12)
ON CONFLICT (slug) DO UPDATE SET name = EXCLUDED.name, description = EXCLUDED.description
`, [
companyData.name,
companyData.slug,
'company',
companyData.cnpj,
companyData.address,
defaultRegionId,
companyData.phone,
companyData.email,
companyData.website,
JSON.stringify(companyData.description),
true,
true
]);
// Core Company
await pool.query(`
INSERT INTO core_companies (id, name, document, status)
VALUES ($1, $2, $3, 'ACTIVE')
ON CONFLICT (id) DO NOTHING
`, [companyData.coreId, companyData.name, companyData.cnpj]);
// Get company ID
const companyRes = await pool.query("SELECT id FROM companies WHERE slug = $1", [companyData.slug]);
const companyId = companyRes.rows[0].id;
const seedUserRes = await pool.query("SELECT id FROM users WHERE identifier IN ('system_seed', 'wile_e_coyote') LIMIT 1");
const seedUserId = seedUserRes.rows[0]?.id || 1;
const workModes = ['onsite', 'hybrid', 'remote'];
for (let i = 0; i < jobs.length; i++) {
const job = jobs[i];
await pool.query(`
INSERT INTO jobs (company_id, created_by, title, description,
salary_min, salary_max, salary_type, employment_type, working_hours,
location, requirements, benefits, visa_support, language_level, status, work_mode)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16)
`, [
companyId,
seedUserId,
job.title,
`${companyData.emoji} ${companyData.name.toUpperCase()} está contratando!\n\n${job.desc}\n\nRequisitos:\n- ${job.skills.join('\n- ')}\n\n${companyData.disclaimer || ''}`,
job.salaryRange[0],
job.salaryRange[1],
'monthly',
'full-time',
'9:00-18:00',
companyData.location,
JSON.stringify(job.skills),
JSON.stringify(companyData.benefits || ['Plano de Saúde', 'Vale Refeição']),
i % 5 === 0,
'advanced',
'open',
workModes[i % 3]
]);
}
console.log(`${companyData.name}: ${jobs.length} vagas criadas`);
} catch (error) {
console.error(` ❌ Erro ${companyData.name}:`, error.message);
}
}
export async function seedEpicCompanies() {
console.log('🎬 Seeding Epic Fictional Companies (Part 2)...');
// BNL - Buy n Large
await createCompanyAndJobs({
name: 'Buy n Large',
slug: 'buy-n-large',
cnpj: '11.111.111/0001-11',
coreId: '11111111-1111-1111-1111-111111111111',
address: 'Axiom Spaceship, Earth Orbit, Solar System',
phone: '+1-800-BNL-SHOP',
email: 'careers@bnl.space',
website: 'https://bnl.space',
location: 'Axiom (Órbita Terrestre)',
emoji: '🛒',
description: { tagline: 'BnL - Everything You Need!', ceo: 'AUTO (Piloto Automático)', status: '700 anos servindo a humanidade' },
benefits: ['Cadeira com todos os recursos', 'Comida líquida ilimitada', 'Não precisa andar'],
disclaimer: '"A BNL não se responsabiliza pela sua incapacidade de andar após 700 anos de serviço."'
}, bnlJobs);
// Cyberdyne Systems
await createCompanyAndJobs({
name: 'Cyberdyne Systems',
slug: 'cyberdyne-systems',
cnpj: '22.222.222/0001-22',
coreId: '22222222-2222-2222-2222-222222222222',
address: '18144 El Camino Real, Sunnyvale, CA 94087',
phone: '+1-408-SKYNET',
email: 'careers@cyberdyne.com',
website: 'https://cyberdyne.com',
location: 'Sunnyvale, California',
emoji: '🤖',
description: { tagline: 'Building a Better Tomorrow... Today', founded: '1984', product: 'Skynet Defense System' },
benefits: ['Seguro de Vida (necessário)', 'Plano de Saúde', 'Bunker Anti-Máquinas'],
disclaimer: '"Cyberdyne não se responsabiliza por apocalipse de máquinas. Isso é FUD da concorrência."'
}, cyberdyneJobs);
// Wonka Industries
await createCompanyAndJobs({
name: 'Wonka Industries',
slug: 'wonka-industries',
cnpj: '33.333.333/0001-33',
coreId: '33333333-3333-3333-3333-333333333333',
address: 'Wonka Factory, Somewhere in England',
phone: '+44-800-WONKA',
email: 'careers@wonka.com',
website: 'https://wonka.com',
location: 'Londres (Localização Secreta)',
emoji: '🍫',
description: { tagline: 'Scrumdiddlyumptious!', ceo: 'Willy Wonka', employees: 'Oompa-Loompas' },
benefits: ['Chocolate Ilimitado', 'Acesso ao Rio de Chocolate', 'Elevador de Vidro'],
disclaimer: '"Wonka Industries não se responsabiliza por crianças transformadas em mirtilos."'
}, wonkaJobs);
// Wayne Enterprises
await createCompanyAndJobs({
name: 'Wayne Enterprises',
slug: 'wayne-enterprises',
cnpj: '44.444.444/0001-44',
coreId: '44444444-4444-4444-4444-444444444444',
address: 'Wayne Tower, 1 Wayne Plaza, Gotham City',
phone: '+1-555-WAYNE',
email: 'careers@wayne.com',
website: 'https://wayne.com',
location: 'Gotham City',
emoji: '🦇',
description: { tagline: 'Building a Better Gotham', ceo: 'Bruce Wayne', divisions: ['Wayne Tech', 'Wayne Biotech', 'Wayne Aerospace'] },
benefits: ['Seguro Premium', 'Academia Wayne', 'Trabalho noturno disponível'],
disclaimer: '"Funcionários não têm acesso à Bat-Caverna. Não pergunte sobre ela."'
}, wayneJobs);
// Oceanic Airlines
await createCompanyAndJobs({
name: 'Oceanic Airlines',
slug: 'oceanic-airlines',
cnpj: '55.555.555/0001-55',
coreId: '55555555-5555-5555-5555-555555555555',
address: '815 Pacific Hwy, Sydney / Los Angeles',
phone: '+1-800-OCEANIC',
email: 'careers@oceanic.com',
website: 'https://oceanic.com',
location: 'Sydney / Los Angeles',
emoji: '✈️',
description: { tagline: 'Fly the Friendly Skies', flights: 'Sydney-LA (principalmente)', incident: 'Flight 815? Never heard of it.' },
benefits: ['Passagens com desconto', 'Seguro de Viagem', 'Treinamento de Sobrevivência'],
disclaimer: '"Oceanic Airlines não se responsabiliza por desaparecimentos em ilhas misteriosas."'
}, oceanicJobs);
// InGen / Jurassic Park
await createCompanyAndJobs({
name: 'InGen - Jurassic Park',
slug: 'ingen-jurassic-park',
cnpj: '65.650.650/0001-65',
coreId: '65656565-6565-6565-6565-656565656565',
address: 'Isla Nublar, Costa Rica / San Diego, CA',
phone: '+1-800-DINO-DNA',
email: 'careers@ingen.com',
website: 'https://jurassicpark.com',
location: 'Isla Nublar (120 miles west of Costa Rica)',
emoji: '🦖',
description: { tagline: 'We Make Your Wildest Dreams Come True', ceo: 'John Hammond (RIP)', warning: 'Life, uh, finds a way.' },
benefits: ['Seguro de Vida Premium', 'Jeeps à disposição', 'Treinamento contra Raptors'],
disclaimer: '"InGen não se responsabiliza por acidentes com dinossauros. Assine o NDA."'
}, ingenJobs);
// Bubba Gump Shrimp Co.
await createCompanyAndJobs({
name: 'Bubba Gump Shrimp Company',
slug: 'bubba-gump-shrimp',
cnpj: '76.760.760/0001-76',
coreId: '76767676-7676-7676-7676-767676767676',
address: 'Bayou La Batre, Alabama',
phone: '+1-334-SHRIMP',
email: 'careers@bubbagump.com',
website: 'https://bubbagump.com',
location: 'Bayou La Batre, Alabama',
emoji: '🦐',
description: { tagline: 'Run, Forrest, Run!', founders: 'Forrest Gump & Bubba Blue', products: '500+ formas de preparar camarão' },
benefits: ['Camarão grátis', 'Boné da empresa', 'Caixa de chocolates'],
disclaimer: '"A vida é como uma caixa de chocolates... e camarões. Muitos camarões."'
}, bubbaGumpJobs);
// Umbrella Corporation
await createCompanyAndJobs({
name: 'Umbrella Corporation',
slug: 'umbrella-corporation',
cnpj: '87.870.870/0001-87',
coreId: '87878787-8787-8787-8787-878787878787',
address: 'The Hive, Raccoon City (Underground)',
phone: '+1-800-UMBRELLA',
email: 'careers@umbrella.com',
website: 'https://umbrella.com',
location: 'Raccoon City (Subterrâneo)',
emoji: '☣️',
description: { tagline: 'Obedience Breeds Discipline', ceo: 'Oswell E. Spencer', products: 'Pharmaceuticals, Defense, T-Virus (oops)' },
benefits: ['Kit Primeiros Socorros (Erva Verde)', 'Máscara de Gás', 'Seguro... bom, não muito útil'],
disclaimer: '"Umbrella Corporation não se responsabiliza por surtos virais, mutações ou zumbis. Assine aqui ➡️"'
}, umbrellaJobs);
// Sprawl-Mart
await createCompanyAndJobs({
name: 'Sprawl-Mart',
slug: 'sprawl-mart',
cnpj: '98.980.980/0001-98',
coreId: '98989898-9898-9898-9898-989898989898',
address: '666 Corporate Dystopia Ave, Everywhere, USA',
phone: '+1-800-SPRAWL',
email: 'careers@sprawlmart.com',
website: 'https://sprawlmart.com',
location: 'Everywhere, USA (1.000.000 lojas)',
emoji: '🏪',
description: { tagline: 'Save Money. Lose Soul.', stores: '1,000,000+', employees: '2.2 million (most underpaid)', motto: 'Sempre o menor preço. Sempre o menor salário.' },
benefits: ['Ticket Cafeteria (R$5/dia)', 'Desconto de 5% na loja', 'Uniforme (custo descontado do salário)'],
disclaimer: '"Sprawl-Mart: Onde os sonhos vão morrer e os preços são baixos. Trabalhe aqui e nunca mais questione o capitalismo."'
}, sprawlMartJobs);
console.log(' 🎬 Todas as empresas épicas criadas!');
}