using MessagePack;
using System.Text.Json.Serialization;
namespace SVSim.EmulatedEntrypoint.Models.Dtos;
///
/// Wire shape: { normal?, total?, campaign? (array) }. Client parser at
/// LoadDetail.cs:553 reads exactly these three keys. normal presence drives
/// IsExistLoginBonusData() / popup eligibility.
///
[MessagePackObject]
public class DailyLoginBonus
{
[JsonPropertyName("normal")] [Key("normal")]
public LoginBonusCampaign? Normal { get; set; }
[JsonPropertyName("total")] [Key("total")]
public LoginBonusCampaign? Total { get; set; }
///
/// Array of campaign panels (LoadDetail.cs:583 iterates jsonData3[i]). Empty list
/// when no specials are active — prod sends [] not null in that case.
///
[JsonPropertyName("campaign")] [Key("campaign")]
public List Campaign { get; set; } = new();
}