using SVSim.Database.Entities.Guild; namespace SVSim.Database.Repositories.Guild; public interface IGuildMemberRepository { Task GetMembershipAsync(long viewerId, CancellationToken ct = default); Task> ListByGuildAsync(int guildId, CancellationToken ct = default); Task CountByGuildAsync(int guildId, CancellationToken ct = default); Task CountByGuildAndRoleAsync(int guildId, GuildRole role, CancellationToken ct = default); Task AddAsync(GuildMember m, CancellationToken ct = default); Task UpdateRoleAsync(int guildId, long viewerId, GuildRole role, CancellationToken ct = default); Task RemoveAsync(int guildId, long viewerId, CancellationToken ct = default); Task DeleteAllForGuildAsync(int guildId, CancellationToken ct = default); /// Returns a count of members per guild for the given guild ids. Used by Task 9 search. Task> CountBatchByGuildIdsAsync(IReadOnlyList guildIds, CancellationToken ct = default); }