refactor(calendar): delete JstPeriod, update doc comments

All JstPeriod callsites have moved to IGameCalendarService — delete the
static class and its tests. Updates the doc comments on Viewer.cs
(LastLoginBonusClaimedAt) and ViewerEventCounter.cs to reference the
new UTC / config-driven boundary instead of the old "JST 02:00".

GameConfigurationJsonb config-section snapshot test picks up "GameCalendar".

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
gamer147
2026-07-04 12:00:18 -04:00
parent 448153d592
commit 6e6856db4f
5 changed files with 4 additions and 108 deletions

View File

@@ -35,7 +35,7 @@ public class Viewer : BaseEntity<long>
/// <summary>
/// UTC instant of the most recent daily-login-bonus claim. Null = never claimed.
/// Compared against JST 02:00 day boundary via JstPeriod.DayKey to decide eligibility.
/// Compared against the daily reset boundary via IGameCalendarService.ResetReady.
/// </summary>
public DateTime? LastLoginBonusClaimedAt { get; set; }

View File

@@ -3,7 +3,8 @@ namespace SVSim.Database.Models;
/// <summary>
/// Per-viewer "how many times has this happened" counter. Composite PK
/// (ViewerId, EventKey, Period). Period strings: "all-time", "month:YYYY-MM",
/// "week:YYYY-W##", "day:YYYY-MM-DD" — all JST-anchored with 02:00 day-boundary.
/// "week:YYYY-W##", "day:YYYY-MM-DD" — all UTC, with the reset-window boundary
/// set by <c>GameCalendarConfig.DailyResetUtcHour</c>.
/// Single source of truth for total_count / done_number on every wire shape.
/// </summary>
public class ViewerEventCounter