feat: Implement "everyone owns all avatar items" toggle; update server settings, controller logic, and admin UI

This commit is contained in:
Alexa
2026-07-09 11:37:47 +03:00
parent 479ea273ea
commit e27b06ce5b
7 changed files with 205 additions and 4 deletions
@@ -68,6 +68,26 @@ public class ServerSettingsService(DorkNetDbContext db)
return existing;
}
/// <summary>When true, every account is treated as owning every avatar
/// item in the master catalog (synthesized at read time — no inventory
/// rows are written). See <see cref="ServerSettingsEntity.AllAvatarItemsOwned"/>
/// and <see cref="Controllers.API.Avatar.V4.AvatarItemsController"/>.</summary>
public async Task<bool> IsAllAvatarItemsOwnedEnabledAsync()
{
var row = await db.ServerSettings.AsNoTracking()
.FirstOrDefaultAsync(s => s.Id == RowId);
return row?.AllAvatarItemsOwned ?? false;
}
public async Task<ServerSettingsEntity> SetAllAvatarItemsOwnedEnabledAsync(bool enabled)
{
var existing = await GetTrackedRowAsync();
existing.AllAvatarItemsOwned = enabled;
existing.UpdatedAt = DateTime.UtcNow;
await db.SaveChangesAsync();
return existing;
}
public async Task<WeeklyChallengeSettings> GetWeeklyChallengesAsync()
{
var row = await GetAsync();