using TelegramPanel.Data.Entities;
namespace TelegramPanel.Data.Repositories;
///
/// 频道仓储接口
///
public interface IChannelRepository : IRepository
{
Task GetByTelegramIdAsync(long telegramId);
Task> GetCreatedAsync();
Task> GetByCreatorAccountAsync(int accountId);
Task> GetForAccountAsync(int accountId, bool includeNonCreator);
Task> GetByGroupAsync(int groupId);
Task> GetBroadcastChannelsAsync();
Task DeleteOrphanedAsync(CancellationToken cancellationToken = default);
Task<(IReadOnlyList Items, int TotalCount)> QueryForViewPagedAsync(
int accountId,
int? groupId,
string? filterType,
string? membershipRole,
string? search,
int pageIndex,
int pageSize,
CancellationToken cancellationToken = default);
}