feat(guild): repositories for Guild aggregate

This commit is contained in:
gamer147
2026-06-27 11:17:51 -04:00
parent 7f245b50d6
commit 3fdc20d21f
11 changed files with 614 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
using SVSim.Database.Entities.Guild;
namespace SVSim.Database.Repositories.Guild;
public interface IGuildInviteRepository
{
Task<GuildInvite?> GetAsync(int guildId, long inviteeViewerId, CancellationToken ct = default);
Task<IReadOnlyList<GuildInvite>> ListPendingForInviteeAsync(long viewerId, CancellationToken ct = default);
Task<IReadOnlyList<GuildInvite>> ListPendingForGuildAsync(int guildId, CancellationToken ct = default);
Task<int> 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);
}