using System;

namespace GestionIntegral.Api.Dtos.Usuarios.Auditoria
{
    public class UsuarioHistorialDto
    {
        public int IdHist { get; set; }             // PK de la tabla gral_Usuarios_H
        public int IdUsuarioAfectado { get; set; }  // IdUsuario (el usuario cuyos datos cambiaron)
        public string UserAfectado { get; set; } = string.Empty; // UserNvo (username del usuario afectado)

        // Campos del historial
        public string? UserAnt { get; set; }
        public string UserNvo { get; set; } = string.Empty;
        public bool? HabilitadaAnt { get; set; }
        public bool HabilitadaNva { get; set; }
        public bool? SupAdminAnt { get; set; }
        public bool SupAdminNvo { get; set; }
        public string? NombreAnt { get; set; }
        public string NombreNvo { get; set; } = string.Empty;
        public string? ApellidoAnt { get; set; }
        public string ApellidoNvo { get; set; } = string.Empty;
        public int? IdPerfilAnt { get; set; }
        public int IdPerfilNvo { get; set; }
        public string? NombrePerfilAnt { get; set; } // Join con gral_Perfiles
        public string NombrePerfilNvo { get; set; } = string.Empty; // Join con gral_Perfiles
        public bool? DebeCambiarClaveAnt { get; set; }
        public bool DebeCambiarClaveNva { get; set; }

        // Auditoría del registro de historial
        public int IdUsuarioModifico { get; set; }    // Id_UsuarioMod
        public string NombreUsuarioModifico { get; set; } = string.Empty; // Nombre del usuario que hizo el cambio
        public DateTime FechaModificacion { get; set; } // FechaMod
        public string TipoModificacion { get; set; } = string.Empty; // TipoMod
    }
}