Files
SVSimServer/SVSim.Database/Repositories/Globals/IGlobalsRepository.cs
gamer147 43a3665775 refactor(arena-colosseum): dedup colosseum_info source-of-truth
/mypage/index data.colosseum_info and /arena_colosseum/{top,get_fee_info}
now both project through ColosseumLobbyInfoBuilder.Build(ColosseumSeasonConfig).
One source of truth for the home-tab gating and the lobby reads — admins
flip the season on by writing to GameConfigs (per the runbook), no second
table to keep in sync.

* New ColosseumLobbyInfoBuilder — static projection from ColosseumSeasonConfig
  to the wire ColosseumLobbyInfo. Replaces ArenaColosseumController's private
  BuildColosseumInfo and MyPageController's BuildColosseumInfo(ColosseumConfig).
* MyPageController reads ColosseumSeasonConfig via IGameConfigService; the
  IGlobalsRepository.GetCurrentColosseum() call goes away.
* MyPageIndexResponse.ColosseumInfo retyped to the new ColosseumLobbyInfo.
* ColosseumSalesPeriodInfo relocated into the ArenaColosseum namespace
  alongside the rest of the family DTOs.
* Drops: Colosseums DB table (migration DropColosseumsTable), ColosseumConfig
  entity, the captured-shape Models.Dtos.ColosseumInfo DTO, ColosseumSeed,
  MyPageGlobalsImporter.ImportColosseumAsync + seed file colosseum.json,
  IGlobalsRepository.GetCurrentColosseum + impl, the two related tests.

Net: home-screen Grand Prix tab now hidden by default because the season
ships with IsColosseumPeriod=false. Full suite: 1345/1345 (was 1347 — the
2 dropped tests covered the now-dead surface).
2026-06-13 13:31:03 -04:00

36 lines
1.7 KiB
C#

using SVSim.Database.Models;
namespace SVSim.Database.Repositories.Globals;
public interface IGlobalsRepository
{
Task<List<ClassExpEntry>> GetClassExpCurve();
Task<List<BattlefieldEntry>> GetBattlefields(bool onlyOpen);
Task<List<RankInfoEntry>> GetRankInfo();
// Seed-driven globals — populated by per-domain importers in SVSim.Bootstrap.
Task<List<MyRotationSettingEntry>> GetMyRotationSettings();
Task<List<MyRotationAbilityEntry>> GetMyRotationAbilities();
Task<List<AvatarAbilityEntry>> GetAvatarAbilities();
Task<List<DefaultDeckEntry>> GetDefaultDecks();
Task<ArenaSeasonConfig?> GetCurrentArenaSeason();
Task<List<SpotCardEntry>> GetSpotCards();
Task<List<ReprintedCardEntry>> GetReprintedCards();
Task<List<UnlimitedRestrictionEntry>> GetUnlimitedRestrictions();
Task<List<LoadingExclusionCardEntry>> GetLoadingExclusionCards();
Task<List<BattlePassLevelEntry>> GetBattlePassLevels();
Task<List<DailyLoginBonusEntry>> GetDailyLoginBonus();
Task<List<BannerEntry>> GetBanners();
Task<IReadOnlyList<HomeDialogEntry>> GetActiveHomeDialogsAsync(DateTime nowUtc);
Task<SealedConfig?> GetCurrentSealedSeason();
Task<MasterPointRankingPeriodEntry?> GetCurrentMasterPointPeriod();
Task<List<SpecialDeckFormatEntry>> GetActiveSpecialDeckFormats();
Task<List<PaymentItemEntry>> GetPaymentItems();
Task<List<MaintenanceCardEntry>> GetMaintenanceCards();
Task<List<FeatureMaintenanceEntry>> GetFeatureMaintenances();
Task<PreReleaseInfo?> GetPreReleaseInfo();
Task<List<ShadowverseCardSetEntry>> GetRotationCardSets();
Task<List<PracticeOpponentEntry>> GetPracticeOpponents();
Task<List<BotRosterEntry>> GetBotRoster();
}