Files
towercontrol/scripts/seed-data.ts
Julien Froidefond c5a7d16425 feat: complete tag management and UI integration
- Marked multiple tasks as completed in TODO.md related to tag management features.
- Replaced manual tag input with `TagInput` component in `CreateTaskForm`, `EditTaskForm`, and `QuickAddTask` for better UX.
- Updated `TaskCard` to display tags using `TagDisplay` with color support.
- Enhanced `TasksService` to manage task-tag relationships with CRUD operations.
- Integrated tag management into the global context for better accessibility across components.
2025-09-14 16:44:22 +02:00

102 lines
3.1 KiB
TypeScript

import { tasksService } from '../services/tasks';
import { TaskStatus, TaskPriority } from '../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: '🎨 Redesign du dashboard',
description: 'Créer une interface moderne et intuitive pour le tableau de bord principal',
status: 'in_progress' as TaskStatus,
priority: 'high' as TaskPriority,
tags: ['design', 'ui', 'frontend'],
dueDate: new Date('2025-01-20')
},
{
title: '🔧 Optimiser les performances API',
description: 'Améliorer les temps de réponse des endpoints et ajouter la pagination',
status: 'todo' as TaskStatus,
priority: 'medium' as TaskPriority,
tags: ['backend', 'performance', 'api'],
dueDate: new Date('2025-01-25')
},
{
title: '✅ Tests unitaires composants',
description: 'Ajouter des tests Jest/RTL pour les composants principaux',
status: 'done' as TaskStatus,
priority: 'medium' as TaskPriority,
tags: ['testing', 'jest', 'quality'],
dueDate: new Date('2025-01-10')
}
];
let createdCount = 0;
let errorCount = 0;
for (const taskData of testTasks) {
try {
const task = await tasksService.createTask(taskData);
const statusEmoji = {
'todo': '⏳',
'in_progress': '🔄',
'done': '✅',
'cancelled': '❌'
}[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 };