mirror of
https://github.com/PeterMaquiran/tvone-api.git
synced 2026-04-22 20:15:50 +00:00
127 lines
2.9 KiB
TypeScript
127 lines
2.9 KiB
TypeScript
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();
|
|
}); |