using SVSim.Database.Entities.Guild; namespace SVSim.Database.Repositories.Guild; public interface IGuildInviteRepository { Task GetAsync(int guildId, long inviteeViewerId, CancellationToken ct = default); Task> ListPendingForInviteeAsync(long viewerId, CancellationToken ct = default); Task> ListPendingForGuildAsync(int guildId, CancellationToken ct = default); Task CountPendingForInviteeAsync(long viewerId, CancellationToken ct = default); Task AddAsync(GuildInvite invite, CancellationToken ct = default); Task UpdateStatusAsync(int guildId, long inviteeViewerId, GuildInviteStatus status, DateTime respondedAt, CancellationToken ct = default); Task ConsumePendingForViewerAsync(long viewerId, DateTime respondedAt, CancellationToken ct = default); Task DeleteAllForGuildAsync(int guildId, CancellationToken ct = default); }