using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using CleanArchitecture.Domain.Entities; namespace CleanArchitecture.Domain.Interfaces.Repositories; public interface IRepository : IDisposable where TEntity : Entity { void Add(TEntity entity); void AddRange(IEnumerable entities); IQueryable GetAll(); IQueryable GetAllNoTracking(); Task GetByIdAsync(Guid id); void Update(TEntity entity); Task ExistsAsync(Guid id); public void Remove(TEntity entity, bool hardDelete = false); void RemoveRange(IEnumerable entities, bool hardDelete = false); }