using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.UserManager.Domain.Entities; namespace DigitalData.UserManager.Infrastructure.Contracts { public interface IGroupOfUserRepository : ICRUDRepository { IQueryable ReadByGroupId(int groupId); Task> ReadByGroupUserIdAsync(int groupId, int userId); Task> ReadAllAsyncWithGroup(); Task> ReadAllAsyncWithUser(); Task> ReadAllAsyncWithGroupAndUser(); Task> ReadByUsernameAsync(string username); Task> ReadByUserIdAsync(int userId); // merge all GroupOfUserRepository-methods conditionally under this method Task> ReadAsync( bool readOnly = true, bool withGroup = true, bool withUser = true, int? id = null, int? groupId = null, int? userId = null, string? username = null); } }