Files
towercontrol/scripts/seed-data.ts
2025-10-09 13:40:03 +02:00

130 lines
3.8 KiB
TypeScript

import { tasksService } from '../src/services/task-management/tasks';
import { TaskStatus, TaskPriority } from '../src/lib/types';
/**
* Script pour ajouter des données de test avec tags et variété
*/
async function seedTestData() {
console.log('🌱 Ajout de données de test...');
console.log('================================');
const testTasks = [
{
title: '🎨 Design System Implementation',
description:
'Create and implement a comprehensive design system with reusable components',
status: 'in_progress' as TaskStatus,
priority: 'high' as TaskPriority,
tags: ['design', 'ui', 'frontend'],
dueDate: new Date('2025-12-31'),
},
{
title: '🔧 API Performance Optimization',
description:
'Optimize API endpoints response time and implement pagination',
status: 'todo' as TaskStatus,
priority: 'medium' as TaskPriority,
tags: ['backend', 'performance', 'api'],
dueDate: new Date('2025-12-15'),
},
{
title: '✅ Test Coverage Improvement',
description: 'Increase test coverage for core components and services',
status: 'todo' as TaskStatus,
priority: 'medium' as TaskPriority,
tags: ['testing', 'quality'],
dueDate: new Date('2025-12-20'),
},
{
title: '📱 Mobile Responsive Design',
description: 'Ensure all pages are fully responsive on mobile devices',
status: 'todo' as TaskStatus,
priority: 'high' as TaskPriority,
tags: ['frontend', 'mobile', 'ui'],
dueDate: new Date('2025-12-10'),
},
{
title: '🔒 Security Audit',
description: 'Conduct a comprehensive security audit of the application',
status: 'backlog' as TaskStatus,
priority: 'urgent' as TaskPriority,
tags: ['security', 'audit'],
dueDate: new Date('2026-01-15'),
},
];
let createdCount = 0;
let errorCount = 0;
for (const taskData of testTasks) {
try {
const task = await tasksService.createTask(taskData);
const statusEmoji = {
backlog: '📋',
todo: '⏳',
in_progress: '🔄',
freeze: '🧊',
done: '✅',
cancelled: '❌',
archived: '📦',
}[task.status];
const priorityEmoji = {
low: '🔵',
medium: '🟡',
high: '🔴',
urgent: '🚨',
}[task.priority];
console.log(` ${statusEmoji} ${priorityEmoji} ${task.title}`);
console.log(` Tags: ${task.tags?.join(', ') || 'aucun'}`);
if (task.dueDate) {
console.log(
` Échéance: ${task.dueDate.toLocaleDateString('fr-FR')}`
);
}
console.log('');
createdCount++;
} catch (error) {
console.error(
` ❌ Erreur pour "${taskData.title}":`,
error instanceof Error ? error.message : error
);
errorCount++;
}
}
console.log('📊 Résumé:');
console.log(` ✅ Tâches créées: ${createdCount}`);
console.log(` ❌ Erreurs: ${errorCount}`);
// Afficher les stats finales
const stats = await tasksService.getTaskStats();
console.log('');
console.log('📈 Statistiques finales:');
console.log(` Total: ${stats.total} tâches`);
console.log(` À faire: ${stats.todo}`);
console.log(` En cours: ${stats.inProgress}`);
console.log(` Terminées: ${stats.completed}`);
console.log(` Annulées: ${stats.cancelled}`);
console.log(` Taux de completion: ${stats.completionRate}%`);
}
// Exécuter le script
if (require.main === module) {
seedTestData()
.then(() => {
console.log('');
console.log('✨ Données de test ajoutées avec succès !');
process.exit(0);
})
.catch((error) => {
console.error('💥 Erreur fatale:', error);
process.exit(1);
});
}
export { seedTestData };