diff --git a/src/api/handlers.rs b/src/api/handlers.rs index 7d5c39c..f2b575b 100644 --- a/src/api/handlers.rs +++ b/src/api/handlers.rs @@ -5,6 +5,7 @@ use axum::{ }; use std::sync::Arc; use sysinfo::System; +use uuid::Uuid; use crate::orchestrator::{AppManager, LifecycleManager}; use crate::models::{ServiceConfig, RestartPolicy, AppType}; use super::dto::*; @@ -158,11 +159,9 @@ pub async fn update_app_handler( .cloned() .unwrap_or_else(|| "production".to_string()); - // Primero intentar hacer soft delete de la app anterior - let _ = config_manager.soft_delete_app(&app_name, Some("Actualizada - versión anterior".to_string())); - - // Luego agregar la nueva configuración - let monitored_app = crate::config::MonitoredApp { + // Actualizar la app existente (sin crear duplicados) + let updated_app = crate::config::MonitoredApp { + id: String::new(), // Se preservará el ID original name: config.app_name.clone(), service_name: service_name.clone(), path: config.working_directory.clone(), @@ -172,7 +171,7 @@ pub async fn update_app_handler( mode, user: config.user.clone(), service_file_path, - registered_at: chrono::Local::now().to_rfc3339(), + registered_at: String::new(), // Se preservará la fecha original deleted: false, deleted_at: None, deleted_reason: None, @@ -181,7 +180,7 @@ pub async fn update_app_handler( created_at: None, }; - match config_manager.add_app_full(monitored_app) { + match config_manager.update_app(&app_name, updated_app) { Ok(_) => { logger.info("API", "✅ JSON actualizado"); }