using GestionIntegral.Api.Models.Usuarios; using System.Collections.Generic; using System.Threading.Tasks; using System.Data; // Para IDbTransaction namespace GestionIntegral.Api.Data.Repositories.Usuarios { public interface IPerfilRepository { Task> GetAllAsync(string? nombreFilter); Task GetByIdAsync(int id); Task CreateAsync(Perfil nuevoPerfil, int idUsuario, IDbTransaction transaction); Task UpdateAsync(Perfil perfilAActualizar, int idUsuario, IDbTransaction transaction); Task DeleteAsync(int id, int idUsuario, IDbTransaction transaction); Task ExistsByNameAsync(string nombrePerfil, int? excludeId = null); Task IsInUseAsync(int id); Task> GetPermisoIdsByPerfilIdAsync(int idPerfil); Task UpdatePermisosByPerfilIdAsync(int idPerfil, IEnumerable nuevosPermisosIds, IDbTransaction transaction); } }