using DigitalData.Core.Abstraction.Application.Repository;
using DigitalData.UserManager.Domain.Entities;

namespace DigitalData.UserManager.Application.Contracts.Repositories;

[Obsolete("Use IRepository")]
public interface IUserRepository : ICRUDRepository<User, int>
{
    Task<IEnumerable<User>> ReadByModuleIdAsync(int moduleId);

    Task<IEnumerable<User>> ReadUnassignedByModuleIdAsync(int moduleId);

    Task<IEnumerable<User>> ReadByGroupIdAsync(int groupId);

    Task<IEnumerable<User>> ReadUnassignedByGroupIdAsync(int groupId);

    Task<User?> ReadByUsernameAsync(string username);
}