#nullable enable using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Threading; using System.Threading.Tasks; using DataModels; namespace UserService.DatabaseLayer.Repositories { public interface IRepository where T : class { Task> GetAllAsync(Expression>? predicate = null, CancellationToken token = default); Task GetAsync(Expression> predicate, CancellationToken token = default); Task AddAsync(T entity, CancellationToken token = default); Task UpdateAsync(T entity, CancellationToken token = default); Task DeleteAsync(T entity, CancellationToken token = default); } public interface IOrganizationUnitsRepository : IRepository { } public interface ISecurityGroupsRepository : IRepository { } public interface IUsersRepository : IRepository { } public interface IMembersRepository { } }