Files
towercontrol/scripts/seed-data.ts
Julien Froidefond f5417040fd feat: complete Phase 4 of service refactoring
- Marked tasks in `TODO.md` as completed for moving task-related files to the `task-management` directory and correcting imports across the codebase.
- Updated imports in `seed-data.ts`, `seed-tags.ts`, API routes, and various components to reflect the new structure.
- Removed obsolete `daily.ts`, `tags.ts`, and `tasks.ts` files to streamline the codebase.
- Added new tasks in `TODO.md` for future cleaning and organization of service imports.
2025-09-23 10:25:41 +02:00

121 lines
3.7 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 };