using System.Linq.Expressions; using RT.Domain.Entities; namespace RT.Infrastructure.Repositories; public interface IRepository where T : BaseEntity { Task GetByIdAsync(Guid id, CancellationToken ct = default); Task> GetAllAsync(CancellationToken ct = default); Task CountAsync(Expression>? predicate = null, CancellationToken ct = default); Task InsertAsync(T entity, CancellationToken ct = default); Task UpdateAsync(T entity, CancellationToken ct = default); Task RemoveAsync(T entity, CancellationToken ct = default); Task SaveChangesAsync(CancellationToken ct = default); }