import { pool } from '../db.js'; import crypto from 'crypto'; /** * 🏢 Empresas Fictícias Icônicas * * - Stark Industries (Marvel) * - Los Pollos Hermanos (Breaking Bad) * - Springfield Nuclear Power Plant (Simpsons) */ // ============================================================================ // 🦾 STARK INDUSTRIES - Marvel Cinematic Universe // ============================================================================ const starkJobs = [ { title: 'Arquiteto de Cloud para J.A.R.V.I.S.', skills: ['AWS', 'Kubernetes', 'AI Infrastructure', 'Zero Latency'], salaryRange: [35000, 60000], desc: 'Gerenciar a infraestrutura que roda a J.A.R.V.I.S. e F.R.I.D.A.Y. Latência máxima tolerada: 0.001ms. Se a IA não responder "Sim, senhor" instantaneamente, você será substituído por um robô.', workMode: 'hybrid' }, { title: 'DevOps Engineer do Arc Reactor', skills: ['Docker', 'Terraform', 'Nuclear Fusion', 'CI/CD'], salaryRange: [30000, 50000], desc: 'Manter uptime de 99.9999% no Arc Reactor. Downtime = Tony Stark irritado = você procurando novo emprego. Bônus: café infinito e acesso ao laboratório.', workMode: 'onsite' }, { title: 'Engenheiro de Machine Learning para Iron Man Suits', skills: ['PyTorch', 'Computer Vision', 'Real-time Processing', 'Jarvis SDK'], salaryRange: [40000, 70000], desc: 'Treinar modelos de IA para as armaduras Mark 1-85. Dataset inclui 847 batalhas e 12.000 horas de voo. Modelo atual: accuracy 99.7%, meta: 100% (Tony é perfeccionista).', workMode: 'onsite' }, { title: 'Security Engineer Anti-Hydra', skills: ['Penetration Testing', 'Cryptography', 'S.H.I.E.L.D. Protocols'], salaryRange: [35000, 55000], desc: 'Proteger sistemas contra ataques da Hydra, AIM e hackers russos. Última brecha resultou em Ultron. Não queremos outro Ultron.', workMode: 'remote' }, { title: 'Full Stack Developer do Stark Phone', skills: ['React Native', 'Holographic UI', 'Biometrics'], salaryRange: [28000, 45000], desc: 'Desenvolver apps para o smartphone mais avançado do mundo. Features incluem: projeção holográfica, IA integrada e autodestruição remota.', workMode: 'hybrid' }, { title: 'Data Engineer do Projeto Insight', skills: ['Spark', 'Real-time Analytics', 'Predictive Modeling'], salaryRange: [32000, 52000], desc: 'Processar dados de satélites e drones em tempo real. Nota: Projeto original foi cancelado por razões éticas. Este é o Insight 2.0 (ético, prometemos).', workMode: 'onsite' }, { title: 'SRE do Complexo dos Vingadores', skills: ['Kubernetes', 'Prometheus', 'Chaos Engineering'], salaryRange: [33000, 53000], desc: 'Garantir que sistemas críticos sobrevivam a ataques alienígenas. SLA: sistema deve funcionar durante invasões Chitauri. PagerDuty: configurado para alertas intergaláticos.', workMode: 'onsite' }, { title: 'Nanotechnology Software Engineer', skills: ['Embedded Systems', 'Nano-robotics', 'Real-time OS'], salaryRange: [45000, 75000], desc: 'Programar nanobots da armadura Mark 50+. Cada nanobot executa código. São 12 milhões de processos paralelos. Boa sorte debugando.', workMode: 'onsite' } ]; // ============================================================================ // 🐔 LOS POLLOS HERMANOS - Breaking Bad // ============================================================================ const losPollosJobs = [ { title: 'Engenheiro de Redes Air-Gapped', skills: ['Cisco', 'VPN Layer 2', 'Criptografia Ponta-a-Ponta', 'Paranoia'], salaryRange: [25000, 45000], desc: 'Configurar e manter redes completamente isoladas da internet para os "laboratórios de temperos". Se um pacote de dados vazar, Gus Fring terá uma conversa muito calma com você. Muito. Calma.', workMode: 'onsite' }, { title: 'Desenvolvedor Fullstack de Logística Fantasma', skills: ['NestJS', 'PostgreSQL', 'Geofencing', 'Discrição'], salaryRange: [22000, 40000], desc: 'Manter sistema de rastreamento de frotas de "temperos". Camada oculta mostra carga real apenas para usuários nível 5. Logs se auto-destroem em 24h. Código limpo, sem comentários sarcásticos.', workMode: 'hybrid' }, { title: 'Pentester Especialista em Segurança Ofensiva', skills: ['Ethical Hacking', 'Câmeras IP', 'Interceptação de Rádio', 'Silêncio'], salaryRange: [28000, 50000], desc: 'Simular ataques da DEA e cartéis rivais aos nossos sistemas. Zero vulnerabilidades toleradas. Um vazamento aqui não resulta em multa LGPD, resulta em "demissão definitiva".', workMode: 'onsite' }, { title: 'DBA Arquiteto de Dados com Expertise em Purge', skills: ['PostgreSQL', 'PostGIS', 'Data Scrubbing', 'Amnésia Seletiva'], salaryRange: [24000, 42000], desc: 'Gerenciar banco de dados de fornecedores e rotas de distribuição. Implementar rotinas rigorosas de limpeza. Dados devem ser consistentes mas fáceis de apagar em caso de visita inesperada.', workMode: 'onsite' } ]; // ============================================================================ // ☢️ SPRINGFIELD NUCLEAR POWER PLANT - The Simpsons // ============================================================================ const springfieldJobs = [ { title: 'Administrador de Sistemas Legados COBOL/Mainframe', skills: ['COBOL', 'Fortran', 'Monitores CRT', 'Paciência Infinita'], salaryRange: [8000, 15000], desc: 'Manter sistemas que controlam o núcleo do reator desde 1970. Hardware não é atualizado há 50 anos. Orçamento para modernização: $0. O Sr. Burns disse "Excelente" e saiu.', workMode: 'onsite' }, { title: 'Desenvolvedor Fullstack Low Cost (PHP 4 / jQuery)', skills: ['PHP 4', 'jQuery 1.x', 'MySQL 3', 'Gambiarra'], salaryRange: [6000, 12000], desc: 'Criar sistema de vigilância de funcionários. Requisito: consertar o que Homer quebra diariamente. Pagamento: 70% salário + 30% tickets de cafeteria + chaveiro radioativo.', workMode: 'onsite' }, { title: 'Especialista em Cyber-Segurança e Vigilância', skills: ['Firewalls Antigos', 'Câmeras Analógicas', 'Cães de Guarda', 'Release the Hounds'], salaryRange: [10000, 18000], desc: 'Impedir funcionários de acessar sites de emprego. Garantir que câmeras do Sr. Burns nunca desliguem. Firewall atual: 486 guardado por cães. Hardware ocasionalmente brilha no escuro.', workMode: 'onsite' }, { title: 'Engenheiro de Dados e Analytics de Produtividade', skills: ['Excel 97', 'Papel Contínuo', 'Impressora Matricial', 'Negatividade'], salaryRange: [7000, 13000], desc: 'Gerar relatórios provando que Setor 7-G (Homer) é o menos produtivo da história da energia nuclear. KPIs: acidentes/mês, donuts consumidos, cochilos no painel de controle.', workMode: 'onsite' } ]; // ============================================================================ // Seeder Functions // ============================================================================ export async function seedStarkIndustries() { console.log('🦾 Seeding Stark Industries (Marvel)...'); try { const countryResult = await pool.query("SELECT id FROM countries WHERE iso2 = 'US'"); const usaId = countryResult.rows[0]?.id || null; // Create Company await pool.query(` INSERT INTO companies (name, slug, type, document, address, country_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 `, [ 'Stark Industries', 'Stark Industries', 'company', '77.777.777/0001-77', 'Stark Tower, 200 Park Avenue, Manhattan, New York, NY 10166', usaId, '+1-212-STARK-01', 'careers@starkindustries.com', 'https://starkindustries.com', JSON.stringify({ tagline: 'Changing the World for a Better Tomorrow', founded: '1939 (Howard Stark)', ceo: 'Pepper Potts (ex-CEO: Tony Stark)', products: ['Arc Reactor', 'Iron Man Suits', 'Clean Energy', 'AI Systems'], locations: ['Manhattan (HQ)', 'Malibu (R&D)', 'Upstate NY (Avengers Compound)'], perks: ['Trabalhar com Vingadores', 'Acesso à J.A.R.V.I.S.', 'Café com Happy Hogan'] }), true, true ]); // Get company ID (SERIAL) from companies table const companyRes = await pool.query("SELECT id FROM companies WHERE slug = 'Stark Industries'"); const companyId = companyRes.rows[0]?.id; // Get seed user const seedUserRes = await pool.query("SELECT id FROM users LIMIT 1"); const seedUserId = seedUserRes.rows[0]?.id || 1; // Create jobs const benefits = ['Seguro Stark Premium', 'Acesso ao Laboratório', 'Café com J.A.R.V.I.S.', 'Voo de teste nas armaduras (após 1 ano)']; for (let i = 0; i < starkJobs.length; i++) { const job = starkJobs[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, `🦾 STARK INDUSTRIES está contratando!\n\n${job.desc}\n\nRequisitos:\n- ${job.skills.join('\n- ')}\n- Capacidade de trabalhar sob pressão (literalmente, durante batalhas)\n- Não se intimidar com super-heróis\n\n"I am Iron Man." - Tony Stark`, job.salaryRange[0], job.salaryRange[1], 'monthly', 'full-time', job.workMode === 'remote' ? 'Flexible' : '9:00-18:00 (ou durante emergências globais)', job.workMode === 'remote' ? 'Remote (Terra ou Órbita)' : 'Stark Tower, Manhattan, NY', JSON.stringify(job.skills), JSON.stringify(benefits), true, 'fluent', 'open', job.workMode ]); } console.log(` ✓ Stark Industries: ${starkJobs.length} vagas criadas`); } catch (error) { console.error(' ❌ Erro Stark Industries:', error.message); } } export async function seedLosPollosHermanos() { console.log('🐔 Seeding Los Pollos Hermanos (Breaking Bad)...'); try { const countryResult = await pool.query("SELECT id FROM countries WHERE iso2 = 'US'"); const usaId = countryResult.rows[0]?.id || null; // Create Company await pool.query(` INSERT INTO companies (name, slug, type, document, address, country_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 `, [ 'Los Pollos Hermanos', 'Los Pollos Hermanos', 'company', '66.666.666/0001-66', '308 Negra Arroyo Lane, Albuquerque, NM 87104', usaId, '+1-505-POLLOS', 'careers@lospollos.com', 'https://lospollos.com', JSON.stringify({ tagline: 'Taste the Family!', founded: '1989', ceo: 'Gustavo Fring', products: ['Frango Frito', 'Curly Fries', 'Especiarias Especiais'], culture: 'Ambiente familiar, gestão rigorosa, zero tolerância a erros', note: 'Todas as vagas requerem background check e assinatura de NDA de 847 páginas' }), true, true ]); // Create company (let DB auto-generate id) await pool.query(` INSERT INTO companies (name, slug, document) VALUES ($1, $2, $3) ON CONFLICT (slug) DO NOTHING `, ['Los Pollos Hermanos', 'los-pollos-hermanos', '66.666.666/0001-66']); // Get company ID (SERIAL) const companyRes = await pool.query("SELECT id FROM companies WHERE slug = 'los-pollos-hermanos'"); const companyId = companyRes.rows[0]?.id; const seedUserRes = await pool.query("SELECT id FROM users LIMIT 1"); const seedUserId = seedUserRes.rows[0]?.id || 1; const benefits = ['Frango Grátis (apenas o legal)', 'Plano de Saúde Premium', 'Seguro de Vida Reforçado', 'Carro da Empresa (GPS desativado)']; for (let i = 0; i < losPollosJobs.length; i++) { const job = losPollosJobs[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, `🐔 LOS POLLOS HERMANOS está contratando!\n\n${job.desc}\n\nRequisitos:\n- ${job.skills.join('\n- ')}\n- Discrição absoluta\n- Capacidade de manter segredos\n- Não fazer perguntas\n\n"I hide in plain sight, same as you." - Gus Fring`, job.salaryRange[0], job.salaryRange[1], 'monthly', 'full-time', '6:00-22:00 (turnos rotativos)', 'Albuquerque, NM (Sede Secreta)', JSON.stringify(job.skills), JSON.stringify(benefits), false, 'advanced', 'open', job.workMode ]); } console.log(` ✓ Los Pollos Hermanos: ${losPollosJobs.length} vagas criadas`); } catch (error) { console.error(' ❌ Erro Los Pollos Hermanos:', error.message); } } export async function seedSpringfieldNuclear() { console.log('☢️ Seeding Springfield Nuclear Power Plant (Simpsons)...'); try { const countryResult = await pool.query("SELECT id FROM countries WHERE iso2 = 'US'"); const usaId = countryResult.rows[0]?.id || null; // Create Company await pool.query(` INSERT INTO companies (name, slug, type, document, address, country_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 `, [ 'Springfield Nuclear Power Plant', 'Springfield Nuclear Power Plant', 'company', '88.888.888/0001-88', '100 Industrial Way, Springfield, State Unknown', usaId, '+1-555-BURNS', 'careers@snpp.com', 'https://snpp.com', JSON.stringify({ tagline: 'Excellent...', founded: '1968', ceo: 'Charles Montgomery Burns (103 anos)', assistant: 'Waylon Smithers Jr.', safetyOfficer: 'Homer J. Simpson (Setor 7-G)', incidents: '342 por ano (média)', mascot: 'Blinky (peixe de 3 olhos)', values: ['Lucro máximo', 'Custo mínimo', 'Segurança opcional'] }), true, true ]); // Create company (let DB auto-generate id) await pool.query(` INSERT INTO companies (name, slug, document) VALUES ($1, $2, $3) ON CONFLICT (slug) DO NOTHING `, ['Springfield Nuclear Power Plant', 'springfield-nuclear', '88.888.888/0001-88']); // Get company ID (SERIAL) const companyRes = await pool.query("SELECT id FROM companies WHERE slug = 'springfield-nuclear'"); const companyId = companyRes.rows[0]?.id; const seedUserRes = await pool.query("SELECT id FROM users LIMIT 1"); const seedUserId = seedUserRes.rows[0]?.id || 1; const benefits = ['Tickets de Cafeteria', 'Dosímetro Pessoal', 'Desconto na Taverna do Moe', 'Estacionamento (longe do reator)']; for (let i = 0; i < springfieldJobs.length; i++) { const job = springfieldJobs[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, `☢️ SPRINGFIELD NUCLEAR POWER PLANT está contratando!\n\n${job.desc}\n\nRequisitos:\n- ${job.skills.join('\n- ')}\n- Tolerância a radiação (medida em donuts/hora)\n- Não questionar ordens do Sr. Burns\n- Disponibilidade para trabalhar no Setor 7-G\n\n"Excelente..." - Sr. Burns`, job.salaryRange[0], job.salaryRange[1], 'monthly', 'full-time', '6:00-18:00 (horas extras obrigatórias)', 'Springfield Nuclear Power Plant, Setor 7-G', JSON.stringify(job.skills), JSON.stringify(benefits), false, 'beginner', 'open', job.workMode ]); } console.log(` ✓ Springfield Nuclear: ${springfieldJobs.length} vagas criadas`); } catch (error) { console.error(' ❌ Erro Springfield Nuclear:', error.message); } } // Export all seeders export async function seedFictionalCompanies() { await seedStarkIndustries(); await seedLosPollosHermanos(); await seedSpringfieldNuclear(); console.log(' 🎬 Todas as empresas fictícias criadas!'); }