65 lines
2.0 KiB
TypeScript
65 lines
2.0 KiB
TypeScript
import { NestFactory } from '@nestjs/core';
|
|
import { AppModule } from '../src/app.module';
|
|
import { getRepositoryToken } from '@nestjs/typeorm';
|
|
import { Category } from '../src/modules/entities';
|
|
|
|
async function bootstrap() {
|
|
const app = await NestFactory.createApplicationContext(AppModule);
|
|
|
|
try {
|
|
const categoryRepository = app.get(getRepositoryToken(Category));
|
|
|
|
// Define categories with Macedonian names and English slugs
|
|
const categories = [
|
|
{
|
|
name: 'Спорт',
|
|
slug: 'sport',
|
|
description: 'Спортски вести и анализи',
|
|
order: 1,
|
|
},
|
|
{
|
|
name: 'Уметност',
|
|
slug: 'art',
|
|
description: 'Уметност, култура и забава',
|
|
order: 2,
|
|
},
|
|
{
|
|
name: 'Наука',
|
|
slug: 'science',
|
|
description: 'Научни откритија и технологија',
|
|
order: 3,
|
|
},
|
|
];
|
|
|
|
console.log('Seeding categories...');
|
|
|
|
for (const categoryData of categories) {
|
|
// Check if category already exists
|
|
const existingCategory = await categoryRepository.findOne({
|
|
where: { slug: categoryData.slug },
|
|
});
|
|
|
|
if (existingCategory) {
|
|
console.log(`Category "${categoryData.name}" (${categoryData.slug}) already exists`);
|
|
} else {
|
|
const category = categoryRepository.create(categoryData);
|
|
await categoryRepository.save(category);
|
|
console.log(`Created category: "${categoryData.name}" (${categoryData.slug})`);
|
|
}
|
|
}
|
|
|
|
console.log('\n✅ Category seeding completed!');
|
|
console.log('Categories available:');
|
|
const allCategories = await categoryRepository.find({ order: { order: 'ASC' } });
|
|
allCategories.forEach((cat: Category) => {
|
|
console.log(` • ${cat.name} (${cat.slug}) - ${cat.description || 'No description'}`);
|
|
});
|
|
|
|
} catch (error) {
|
|
console.error('Error seeding categories:', error);
|
|
} finally {
|
|
await app.close();
|
|
}
|
|
}
|
|
|
|
bootstrap(); |