using GestionIntegral.Api.Dtos.Usuarios; using GestionIntegral.Api.Dtos.Usuarios.Auditoria; using System.Collections.Generic; using System.Threading.Tasks; namespace GestionIntegral.Api.Services.Usuarios { public interface IUsuarioService { Task> ObtenerTodosAsync(string? userFilter, string? nombreFilter); Task ObtenerPorIdAsync(int id); Task<(UsuarioDto? Usuario, string? Error)> CrearAsync(CreateUsuarioRequestDto createDto, int idUsuarioCreador); Task<(bool Exito, string? Error)> ActualizarAsync(int id, UpdateUsuarioRequestDto updateDto, int idUsuarioModificador); Task<(bool Exito, string? Error)> SetPasswordAsync(int userId, SetPasswordRequestDto setPasswordDto, int idUsuarioModificador); // Habilitar/Deshabilitar podría ser un método separado o parte de UpdateAsync Task<(bool Exito, string? Error)> CambiarEstadoHabilitadoAsync(int userId, bool habilitar, int idUsuarioModificador); Task> ObtenerHistorialPorUsuarioIdAsync(int idUsuarioAfectado, DateTime? fechaDesde, DateTime? fechaHasta); Task> ObtenerTodoElHistorialAsync(DateTime? fechaDesde, DateTime? fechaHasta, int? idUsuarioModificoFilter, string? tipoModFilter); } }