feat(http): stub /arena_colosseum/get_fee_info (is_colosseum_period:false)

This commit is contained in:
gamer147
2026-05-31 11:58:18 -04:00
parent 98fb3c5fcd
commit f8ca4a0ae9
4 changed files with 68 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
using MessagePack;
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Requests.ArenaColosseum;
[MessagePackObject]
public class GetFeeInfoRequest { }

View File

@@ -0,0 +1,39 @@
using System.Text.Json.Serialization;
using MessagePack;
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Responses.ArenaColosseum;
/// <summary>
/// Minimum-viable stub for /arena_colosseum/get_fee_info — emits is_colosseum_period:false
/// so the client (Wizard/ColosseumEntryInfoTask.cs:99) skips the rest of the parse and the
/// home/arena screen renders without 404ing. TODO: implement the full Colosseum entry flow
/// when the Colosseum format is brought online.
/// </summary>
[MessagePackObject]
public class GetFeeInfoResponseDto
{
/// <summary>
/// Per-viewer Colosseum entry status (rest_entry_num, now_round_id, is_last_day, etc.).
/// Empty object — client (ColosseumEntryInfoTask.cs:146) guards with `if (status.Count != 0)`,
/// so an empty dict short-circuits cleanly.
/// </summary>
[JsonPropertyName("colosseum_status")] [Key("colosseum_status")]
public ColosseumStatusDto ColosseumStatus { get; set; } = new();
[JsonPropertyName("colosseum_info")] [Key("colosseum_info")]
public ColosseumInfoDto ColosseumInfo { get; set; } = new();
}
[MessagePackObject]
public class ColosseumStatusDto { }
[MessagePackObject]
public class ColosseumInfoDto
{
/// <summary>
/// false = no Colosseum event running. Client (ColosseumEntryInfoTask.cs:100) gates every
/// other field on this — emitting false is what lets us ship an otherwise-empty info block.
/// </summary>
[JsonPropertyName("is_colosseum_period")] [Key("is_colosseum_period")]
public bool IsColosseumPeriod { get; set; } = false;
}