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:
@@ -3,16 +3,24 @@ using System.Text.Json.Serialization;
|
||||
|
||||
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
|
||||
|
||||
/// <summary>
|
||||
/// Wire shape: { normal?, total?, campaign? (array) }. Client parser at
|
||||
/// LoadDetail.cs:553 reads exactly these three keys. <c>normal</c> presence drives
|
||||
/// IsExistLoginBonusData() / popup eligibility.
|
||||
/// </summary>
|
||||
[MessagePackObject]
|
||||
public class DailyLoginBonus
|
||||
{
|
||||
[JsonPropertyName("total")]
|
||||
[Key("total")]
|
||||
public LoginBonusCampaign? Total { get; set; }
|
||||
[JsonPropertyName("normal")]
|
||||
[Key("normal")]
|
||||
[JsonPropertyName("normal")] [Key("normal")]
|
||||
public LoginBonusCampaign? Normal { get; set; }
|
||||
[JsonPropertyName("campaign")]
|
||||
[Key("campaign")]
|
||||
public LoginBonusCampaign? Campaign { get; set; }
|
||||
}
|
||||
|
||||
[JsonPropertyName("total")] [Key("total")]
|
||||
public LoginBonusCampaign? Total { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Array of campaign panels (LoadDetail.cs:583 iterates jsonData3[i]). Empty list
|
||||
/// when no specials are active — prod sends [] not null in that case.
|
||||
/// </summary>
|
||||
[JsonPropertyName("campaign")] [Key("campaign")]
|
||||
public List<LoginBonusCampaign> Campaign { get; set; } = new();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user