using BCards.Web.Models; namespace BCards.Web.Repositories; public interface IUserPageRepository { Task GetByIdAsync(string id); Task GetBySlugAsync(string category, string slug); Task GetByUserIdAsync(string userId); Task> GetByUserIdAllAsync(string userId); Task> GetActivePagesAsync(); Task CreateAsync(UserPage userPage); Task UpdateAsync(UserPage userPage); Task DeleteAsync(string id); Task SlugExistsAsync(string category, string slug, string? excludeId = null); Task> GetRecentPagesAsync(int limit = 10); Task> GetByCategoryAsync(string category, int limit = 20); Task UpdateAnalyticsAsync(string id, PageAnalytics analytics); }