feat(ranking): stub /ranking/* (6 endpoints)
Rankings menu opens. Period picker shows deterministic monthly schedule.
Every leaderboard returns { period, ranking: [] }.
Endpoints:
- /ranking/get_viewable_ranking_period_list
- /ranking/master_point_{rotation,unlimited}_info
- /ranking/rank_match_class_win_{rotation,unlimited}_info
- /ranking/two_pick_win_info
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using MessagePack;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Ranking;
|
||||
|
||||
[MessagePackObject]
|
||||
public sealed class PeriodListResponseDto
|
||||
{
|
||||
// All required per spec; emit empty list, never null.
|
||||
[JsonPropertyName("rank_match"), Key("rank_match")]
|
||||
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
|
||||
public List<PeriodEntryDto> RankMatch { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("master_point"), Key("master_point")]
|
||||
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
|
||||
public List<MasterPointPeriodEntryDto> MasterPoint { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("two_pick"), Key("two_pick")]
|
||||
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
|
||||
public List<TwoPickPeriodEntryDto> TwoPick { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("sealed"), Key("sealed")]
|
||||
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
|
||||
public List<PeriodEntryDto> Sealed { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("crossover_rank_match"), Key("crossover_rank_match")]
|
||||
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
|
||||
public List<PeriodEntryDto> CrossoverRankMatch { get; set; } = new();
|
||||
|
||||
[JsonPropertyName("crossover_master_point"), Key("crossover_master_point")]
|
||||
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
|
||||
public List<PeriodEntryDto> CrossoverMasterPoint { get; set; } = new();
|
||||
}
|
||||
Reference in New Issue
Block a user