25 lines
1.4 KiB
C#
25 lines
1.4 KiB
C#
|
|
using GestionIntegral.Api.Models.Usuarios; // Para Usuario
|
||
|
|
using System.Collections.Generic;
|
||
|
|
using System.Threading.Tasks;
|
||
|
|
using System.Data;
|
||
|
|
|
||
|
|
namespace GestionIntegral.Api.Data.Repositories.Usuarios
|
||
|
|
{
|
||
|
|
public interface IUsuarioRepository
|
||
|
|
{
|
||
|
|
Task<IEnumerable<Usuario>> GetAllAsync(string? userFilter, string? nombreFilter);
|
||
|
|
Task<Usuario?> GetByIdAsync(int id);
|
||
|
|
Task<Usuario?> GetByUsernameAsync(string username); // Ya existe en IAuthRepository, pero lo duplicamos para cohesión del CRUD
|
||
|
|
Task<Usuario?> CreateAsync(Usuario nuevoUsuario, int idUsuarioCreador, IDbTransaction transaction);
|
||
|
|
Task<bool> UpdateAsync(Usuario usuarioAActualizar, int idUsuarioModificador, IDbTransaction transaction);
|
||
|
|
// DeleteAsync no es común para usuarios, se suelen deshabilitar.
|
||
|
|
// Task<bool> DeleteAsync(int id, int idUsuarioModificador, IDbTransaction transaction);
|
||
|
|
Task<bool> SetPasswordAsync(int userId, string newHash, string newSalt, bool debeCambiarClave, int idUsuarioModificador, IDbTransaction transaction);
|
||
|
|
Task<bool> UserExistsAsync(string username, int? excludeId = null);
|
||
|
|
|
||
|
|
// Para el DTO de listado
|
||
|
|
Task<IEnumerable<(Usuario Usuario, string NombrePerfil)>> GetAllWithProfileNameAsync(string? userFilter, string? nombreFilter);
|
||
|
|
Task<(Usuario? Usuario, string? NombrePerfil)> GetByIdWithProfileNameAsync(int id);
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|