using SVSim.Database.Repositories.Guild; using SVSim.Database.Services; namespace SVSim.Database.Services.Guild; public sealed class GuildService : IGuildService { private readonly IGuildRepository _guilds; private readonly IGuildMemberRepository _members; private readonly IGuildInviteRepository _invites; private readonly IGuildJoinRequestRepository _joinRequests; private readonly IGuildChatMessageRepository _chatMessages; private readonly IGameConfigService _config; public GuildService( IGuildRepository guilds, IGuildMemberRepository members, IGuildInviteRepository invites, IGuildJoinRequestRepository joinRequests, IGuildChatMessageRepository chatMessages, IGameConfigService config) { _guilds = guilds; _members = members; _invites = invites; _joinRequests = joinRequests; _chatMessages = chatMessages; _config = config; } // Returns null so /guild/info can short-circuit to a non-joined response in Phase 1. public Task GetMyGuildAsync(long viewerId, CancellationToken ct = default) => Task.FromResult(null); public Task GetActiveAsync(int guildId, CancellationToken ct = default) => throw new NotImplementedException(); public Task> SearchAsync(string name, int activity, int joinCondition, int memberBucket, CancellationToken ct = default) => throw new NotImplementedException(); public Task CreateAsync(long viewerId, CreateGuildRequest req, CancellationToken ct = default) => throw new NotImplementedException(); public Task UpdateAsync(long viewerId, UpdateGuildRequest req, CancellationToken ct = default) => throw new NotImplementedException(); public Task UpdateDescriptionAsync(long viewerId, string description, CancellationToken ct = default) => throw new NotImplementedException(); public Task UpdateEmblemAsync(long viewerId, long emblemId, CancellationToken ct = default) => throw new NotImplementedException(); public Task BreakupAsync(long viewerId, CancellationToken ct = default) => throw new NotImplementedException(); public Task InviteAsync(long callerViewerId, long targetViewerId, CancellationToken ct = default) => throw new NotImplementedException(); public Task CancelInviteAsync(long callerViewerId, long targetViewerId, CancellationToken ct = default) => throw new NotImplementedException(); public Task RejectInviteAsync(long callerViewerId, int guildId, CancellationToken ct = default) => throw new NotImplementedException(); public Task JoinAsync(long viewerId, int guildId, CancellationToken ct = default) => throw new NotImplementedException(); public Task CancelJoinRequestAsync(long viewerId, int guildId, CancellationToken ct = default) => throw new NotImplementedException(); public Task AcceptJoinRequestAsync(long callerViewerId, long applicantViewerId, CancellationToken ct = default) => throw new NotImplementedException(); public Task RejectJoinRequestAsync(long callerViewerId, long applicantViewerId, CancellationToken ct = default) => throw new NotImplementedException(); public Task LeaveAsync(long viewerId, CancellationToken ct = default) => throw new NotImplementedException(); public Task RemoveAsync(long callerViewerId, long targetViewerId, CancellationToken ct = default) => throw new NotImplementedException(); public Task ChangeRoleAsync(long callerViewerId, long targetViewerId, int newRoleId, CancellationToken ct = default) => throw new NotImplementedException(); public Task> ListPendingInvitesForMeAsync(long viewerId, CancellationToken ct = default) => throw new NotImplementedException(); public Task> ListPendingJoinRequestsForMyGuildAsync(long viewerId, CancellationToken ct = default) => throw new NotImplementedException(); }