namespace TaxBaik.Domain.Interfaces; using TaxBaik.Domain.Entities; public interface IBlogPostRepository { Task GetByIdAsync(int id, CancellationToken cancellationToken = default); Task GetBySlugAsync(string slug, CancellationToken cancellationToken = default); Task<(IEnumerable Items, int Total)> GetPublishedPagedAsync( int page, int pageSize, int? categoryId = null, CancellationToken cancellationToken = default); Task> GetByCategorySlugAsync(string categorySlug, int limit, CancellationToken cancellationToken = default); Task> GetAllForAdminAsync(CancellationToken cancellationToken = default); Task<(IEnumerable Items, int Total)> GetAdminPagedAsync( int page, int pageSize, CancellationToken cancellationToken = default); Task CreateAsync(BlogPost post, CancellationToken cancellationToken = default); Task UpdateAsync(BlogPost post, CancellationToken cancellationToken = default); Task DeleteAsync(int id, CancellationToken cancellationToken = default); Task IncrementViewCountAsync(int id, CancellationToken cancellationToken = default); }