Files
Tasks/backend/seeders/20251110192809-demo-categories.js
2025-11-11 00:25:50 +02:00

124 lines
3.4 KiB
JavaScript

'use strict';
const { v4: uuidv4 } = require('uuid');
/** @type {import('sequelize-cli').Migration} */
module.exports = {
async up(queryInterface, Sequelize) {
const categories = [
{
id: uuidv4(),
name: 'JavaScript',
slug: 'javascript',
description: 'Core JavaScript concepts, ES6+, async programming, and modern features',
icon: '🟨',
color: '#F7DF1E',
is_active: true,
guest_accessible: true,
question_count: 0,
quiz_count: 0,
display_order: 1,
created_at: new Date(),
updated_at: new Date()
},
{
id: uuidv4(),
name: 'Angular',
slug: 'angular',
description: 'Angular framework, components, services, RxJS, and state management',
icon: '🅰️',
color: '#DD0031',
is_active: true,
guest_accessible: true,
question_count: 0,
quiz_count: 0,
display_order: 2,
created_at: new Date(),
updated_at: new Date()
},
{
id: uuidv4(),
name: 'React',
slug: 'react',
description: 'React library, hooks, component lifecycle, state management, and best practices',
icon: '⚛️',
color: '#61DAFB',
is_active: true,
guest_accessible: true,
question_count: 0,
quiz_count: 0,
display_order: 3,
created_at: new Date(),
updated_at: new Date()
},
{
id: uuidv4(),
name: 'Node.js',
slug: 'nodejs',
description: 'Node.js runtime, Express, APIs, middleware, and server-side JavaScript',
icon: '🟢',
color: '#339933',
is_active: true,
guest_accessible: false,
question_count: 0,
quiz_count: 0,
display_order: 4,
created_at: new Date(),
updated_at: new Date()
},
{
id: uuidv4(),
name: 'TypeScript',
slug: 'typescript',
description: 'TypeScript types, interfaces, generics, decorators, and type safety',
icon: '📘',
color: '#3178C6',
is_active: true,
guest_accessible: false,
question_count: 0,
quiz_count: 0,
display_order: 5,
created_at: new Date(),
updated_at: new Date()
},
{
id: uuidv4(),
name: 'SQL & Databases',
slug: 'sql-databases',
description: 'SQL queries, database design, indexing, transactions, and optimization',
icon: '🗄️',
color: '#4479A1',
is_active: true,
guest_accessible: false,
question_count: 0,
quiz_count: 0,
display_order: 6,
created_at: new Date(),
updated_at: new Date()
},
{
id: uuidv4(),
name: 'System Design',
slug: 'system-design',
description: 'Scalability, architecture patterns, microservices, and design principles',
icon: '🏗️',
color: '#FF6B6B',
is_active: true,
guest_accessible: false,
question_count: 0,
quiz_count: 0,
display_order: 7,
created_at: new Date(),
updated_at: new Date()
}
];
await queryInterface.bulkInsert('categories', categories, {});
console.log('✅ Seeded 7 demo categories');
},
async down(queryInterface, Sequelize) {
await queryInterface.bulkDelete('categories', null, {});
console.log('✅ Removed demo categories');
}
};