using DysonNetwork.Sphere.Account; using DysonNetwork.Sphere.Localization; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Localization; namespace DysonNetwork.Sphere.Realm; public class RealmService(AppDatabase db, NotificationService nty, IStringLocalizer localizer) { public async Task SendInviteNotify(RealmMember member) { await nty.SendNotification( member.Account, "invites.realms", localizer["RealmInviteTitle"], null, localizer["RealmInviteBody", member.Realm.Name] ); } public async Task IsMemberWithRole(Guid realmId, Guid accountId, params RealmMemberRole[] requiredRoles) { if (requiredRoles.Length == 0) return false; var maxRequiredRole = requiredRoles.Max(); var member = await db.RealmMembers .FirstOrDefaultAsync(m => m.RealmId == realmId && m.AccountId == accountId); return member?.Role >= maxRequiredRole; } }