-- Fechas de auditoria para el modulo de induccion.
-- Se manejan a nivel de base de datos (DEFAULT / ON UPDATE) para cubrir TODOS los
-- puntos que crean o alteran inducciones: InduccionesController (create, edit,
-- masivo, masivoAcademico, masivoQueNoCargaron, asistioMasivo, getCorreoFromCurriculo,
-- getUpdateEstadoPLanta, cambiarEstadoAsistido y los UPDATE de Historial),
-- ColaboradoresController, SolicitudContratosController,
-- SolicitudContratosAdministrativoController y CargueMasivoReinduccionController.
-- No se definen como atributos del modelo para que ningun INSERT/UPDATE del framework
-- las escriba explicitamente y bloquee el comportamiento automatico.

ALTER TABLE inducciones
  ADD COLUMN FechaCreacion DATETIME NULL DEFAULT CURRENT_TIMESTAMP AFTER FechaRegistro,
  ADD COLUMN FechaEdicion DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER FechaCreacion;

-- Backfill: los registros existentes toman como fecha de creacion la FechaRegistro
-- (se asigna tambien FechaEdicion en el mismo UPDATE para que el ON UPDATE no la pise con NOW()).
UPDATE inducciones
  SET FechaCreacion = FechaRegistro,
      FechaEdicion = FechaRegistro
  WHERE FechaRegistro IS NOT NULL
    AND FechaRegistro != '0000-00-00 00:00:00';
