using DigitalData.Core.Abstractions.Application;
using DigitalData.Core.DTO;
using DigitalData.UserManager.Application.DTOs.ModuleOfUser;
using DigitalData.UserManager.Domain.Entities;

namespace DigitalData.UserManager.Application.Contracts
{
    public interface IModuleOfUserService : ICRUDService<ModuleOfUserCreateDto, ModuleOfUserReadDto, ModuleOfUserUpdateDto, ModuleOfUser, int>
    {
        Task<Result> DeleteAsyncByModuleUserId(int moduleId, int userId);

        Task<DataResult<IEnumerable<ModuleOfUserReadDto>>> ReadByUserAsync(string username);
    }
}