import { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient(); const data = [ { name: 'Política', slug: 'politica', children: [ { name: 'Eleições', slug: 'eleicoes' }, { name: 'Governo', slug: 'governo' }, { name: 'Diplomacia', slug: 'diplomacia' }, ], }, { name: 'Mundo', slug: 'mundo', children: [ { name: 'Europa', slug: 'europa' }, { name: 'África', slug: 'africa' }, { name: 'Ásia', slug: 'asia' }, { name: 'Américas', slug: 'americas' }, ], }, { name: 'Negócios', slug: 'negocios', children: [ { name: 'Mercados', slug: 'mercados' }, { name: 'Startups', slug: 'startups' }, { name: 'Economia', slug: 'economia' }, { name: 'Cripto', slug: 'cripto' }, ], }, { name: 'Tecnologia', slug: 'tecnologia', children: [ { name: 'Inteligência Artificial', slug: 'inteligencia-artificial' }, { name: 'Gadgets', slug: 'gadgets' }, { name: 'Software', slug: 'software' }, { name: 'Cibersegurança', slug: 'ciberseguranca' }, ], }, { name: 'Esportes', slug: 'esportes', children: [ { name: 'Futebol', slug: 'futebol' }, { name: 'Basquete', slug: 'basquete' }, { name: 'Tênis', slug: 'tenis' }, { name: 'Fórmula 1', slug: 'formula-1' }, ], }, { name: 'Entretenimento', slug: 'entretenimento', children: [ { name: 'Filmes', slug: 'filmes' }, { name: 'Música', slug: 'musica' }, { name: 'Celebridades', slug: 'celebridades' }, { name: 'Séries de TV', slug: 'series-tv' }, ], }, { name: 'Saúde', slug: 'saude', children: [ { name: 'Medicina', slug: 'medicina' }, { name: 'Nutrição', slug: 'nutricao' }, { name: 'Saúde Mental', slug: 'saude-mental' }, ], }, { name: 'Ciência', slug: 'ciencia', children: [ { name: 'Espaço', slug: 'espaco' }, { name: 'Meio Ambiente', slug: 'meio-ambiente' }, { name: 'Física', slug: 'fisica' }, ], }, { name: 'Estilo de Vida', slug: 'estilo-de-vida', children: [ { name: 'Viagem', slug: 'viagem' }, { name: 'Comida', slug: 'comida' }, { name: 'Moda', slug: 'moda' }, ], }, ]; async function createCategory(node: any, parentId: string | null = null) { const category = await prisma.category.create({ data: { name: node.name, slug: node.slug, parentId, }, }); if (node.children?.length) { for (const child of node.children) { await createCategory(child, category.id); } } } async function main() { console.log('🌱 Seeding categories...'); for (const root of data) { await createCategory(root); } console.log('✅ Categories seeded successfully'); } main() .catch((e) => { console.error(e); process.exit(1); }) .finally(async () => { await prisma.$disconnect(); });