using GestionIntegral.Api.Dtos.Auditoria; using GestionIntegral.Api.Dtos.Usuarios; using System.Collections.Generic; using System.Threading.Tasks; namespace GestionIntegral.Api.Services.Usuarios { public interface IPerfilService { Task> ObtenerTodosAsync(string? nombreFilter); Task ObtenerPorIdAsync(int id); Task<(PerfilDto? Perfil, string? Error)> CrearAsync(CreatePerfilDto createDto, int idUsuario); Task<(bool Exito, string? Error)> ActualizarAsync(int id, UpdatePerfilDto updateDto, int idUsuario); Task<(bool Exito, string? Error)> EliminarAsync(int id, int idUsuario); Task> ObtenerPermisosAsignadosAsync(int idPerfil); Task<(bool Exito, string? Error)> ActualizarPermisosAsignadosAsync(int idPerfil, ActualizarPermisosPerfilRequestDto request, int idUsuarioModificador); Task> ObtenerHistorialAsync( DateTime? fechaDesde, DateTime? fechaHasta, int? idUsuarioModifico, string? tipoModificacion, int? idPerfilAfectado); Task> ObtenerPermisosAsignadosHistorialAsync( DateTime? fechaDesde, DateTime? fechaHasta, int? idUsuarioModifico, string? tipoModificacion, int? idPerfilAfectado, int? idPermisoAfectado); } }