using StickyBoard.Core.Models.Base; namespace StickyBoard.Core.Repositories.Base; public interface IRepository where T : class, IEntity { Task GetByIdAsync(Guid id, CancellationToken ct); Task GetByIdIncludingDeletedAsync(Guid id, CancellationToken ct); Task> GetAllAsync(CancellationToken ct); Task CreateAsync(T entity, CancellationToken ct); Task UpdateAsync(T entity, CancellationToken ct); Task DeleteAsync(Guid id, CancellationToken ct); Task ExistsAsync(Guid id, CancellationToken ct); Task CountAsync(CancellationToken ct); Task> GetPagedAsync(int limit, int offset, CancellationToken ct); }