diff --git a/src/services/integrations/jira/jira.ts b/src/services/integrations/jira/jira.ts index eccd533..13008db 100644 --- a/src/services/integrations/jira/jira.ts +++ b/src/services/integrations/jira/jira.ts @@ -539,6 +539,9 @@ export class JiraService { existingTask.priority !== taskData.priority ? existingTask.priority : taskData.priority; + // Préserver le statut archived local - ne jamais désarchiver depuis Jira + const finalStatus = + existingTask.status === 'archived' ? 'archived' : taskData.status; if (existingTask.title !== taskData.title) { changes.push(`Titre: préservé localement ("${existingTask.title}")`); @@ -546,8 +549,13 @@ export class JiraService { if (existingTask.description !== taskData.description) { changes.push(`Description modifiée`); } - if (existingTask.status !== taskData.status) { - changes.push(`Statut: ${existingTask.status} → ${taskData.status}`); + if ( + existingTask.status === 'archived' && + taskData.status !== 'archived' + ) { + changes.push(`Statut: préservé localement (archived)`); + } else if (existingTask.status !== finalStatus) { + changes.push(`Statut: ${existingTask.status} → ${finalStatus}`); } if (existingTask.priority !== taskData.priority) { changes.push( @@ -612,7 +620,7 @@ export class JiraService { } = { title: finalTitle, description: taskData.description, - status: taskData.status, + status: finalStatus, priority: finalPriority, dueDate: taskData.dueDate, jiraProject: taskData.jiraProject, @@ -623,7 +631,7 @@ export class JiraService { }; // Si la tâche passe à "done" et n'a pas encore de completedAt, le définir - if (taskData.status === 'done' && !existingTask.completedAt) { + if (finalStatus === 'done' && !existingTask.completedAt) { updateData.completedAt = new Date(); console.log(` ✅ Tâche marquée comme terminée (completedAt défini)`); }