using back.Entities; using System.Linq.Expressions; namespace back.Application.Contracts.Persistence { public interface IAsyncRepository where T : BaseEntity { Task> GetAllAsync(); Task> GetAsync(Expression>? predicate); Task> GetAsync(Expression>? predicate = null, Func, IOrderedQueryable>? orderBy = null, string? includeString = null, bool disableTracking = true); Task> GetAsync(Expression>? predicate = null, Func, IOrderedQueryable>? orderBy = null, List>>? includes = null, bool disableTracking = true); Task GetByIdAsync(int id); Task AddAsync(T entity); Task UpdateAsync(T entity); Task DeleteAsync(T entity); } }