fix(dto): align daily_login_bonus DTOs with prod wire shape

- numeric fields ship as quoted strings (campaign_id, img, effect_id,
  reward_type, reward_detail_id, reward_number)
- DailyLoginBonus.Campaign is a List<>, not a single object
- LoginBonusCampaign.Img replaces Image (string, asset-key)
- add IsOneDayMultiRewards (SpecialData-only on client, byte-faithful)
This commit is contained in:
gamer147
2026-06-13 15:59:42 -04:00
parent 0d01727e48
commit e6e3f919a6
5 changed files with 126 additions and 55 deletions

View File

@@ -149,8 +149,10 @@ public class IndexResponse
public List<UserRankedMatches> UserRankedMatches { get; set; } = new();
/// <summary>
/// Spec: optional. Shape is {normal?, total?, campaign?[]} per common/types.ts.md DailyLoginBonus.
/// Populated by ILoginBonusService when the viewer has an active bonus period; null otherwise.
/// Spec: optional. Shape {normal?, total?, campaign?[]} — client parses three keys
/// in LoadDetail.cs:553. <c>normal</c> presence triggers the login-bonus popup
/// (NextSceneSwitcher.cs:103). Populated by ILoginBonusService at /load/index time;
/// null when the viewer has already claimed today's bonus.
/// </summary>
[JsonPropertyName("daily_login_bonus")]
[Key("daily_login_bonus")]