feat(CS): weekly auto-schedule (day-of-week + UTC time), persisted, /csschedule GM cmd
Some checks failed
.NET Core / build (push) Has been cancelled

The siege can now auto-open registration on scheduled days/time instead of only
manual /csphase. Schedule is context-owned state (like owner), persisted across
restarts via the same config-JSON path. New GM command /csschedule sets/views/clears
it (e.g. /csschedule Sunday 20:00, UTC). +2 unit tests (11 total).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Acentech Dev
2026-07-15 12:47:29 +03:00
parent 05a10d495d
commit ac6700a356
5 changed files with 181 additions and 4 deletions

View File

@@ -48,6 +48,12 @@ public class CastleSiegeConfiguration
/// <summary>Gets or sets the persisted registered guild names for the current cycle.</summary>
public IList<string> PersistedRegisteredGuilds { get; set; } = new List<string>();
/// <summary>Gets or sets the persisted auto-schedule days of week (empty = manual start only).</summary>
public IList<DayOfWeek> PersistedScheduleDays { get; set; } = new List<DayOfWeek>();
/// <summary>Gets or sets the persisted auto-schedule UTC time of day, or null if unscheduled.</summary>
public TimeOnly? PersistedScheduleTime { get; set; }
/// <summary>
/// Returns true if <paramref name="now"/> falls within a 5-second window of any configured
/// registration-open time.