using Modules.Library.Database.Database.Models; using System.Linq.Expressions; namespace Modules.Library.Database.Repositories; internal interface IRepository : IRepository where T : Entity { } internal interface IRepository { Task> GetAllAsync(); Task GetByIdAsync(TKey id); Task GetByIdOrDefaultAsync(TKey id); Task> GetRangeByIdsAsync(List ids); Task GetFirstWhere(Expression> predicate); Task GetFirstOrDefaultWhere(Expression> predicate); Task> GetWhere(Expression> predicate); Task AnyWhere(Expression> predicate); Task AddAsync(T entity); Task UpdateAsync(T entity); Task DeleteAsync(T entity); }