using System.Text.Json.Serialization;
using MessagePack;
using SVSim.EmulatedEntrypoint.Models.Dtos.Requests;
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Requests.LeaderSkin;
///
/// POST /leader_skin/set — the per-class "current leader skin" preference used as a fallback
/// when a deck has leader_skin_id == 0. Two modes:
/// - Non-random: is_random_leader_skin=false, leader_skin_id is the chosen skin id.
/// - Random: is_random_leader_skin=true, leader_skin_id_list is the shuffle pool
/// (server picks per-match). Random mode is not implemented in v1 (returns 501).
/// Source: Wizard/LeaderSkinUpdateTask.cs.
///
[MessagePackObject]
public class LeaderSkinSetRequest : BaseRequest
{
[JsonPropertyName("class_id")]
[Key("class_id")]
public int ClassId { get; set; }
[JsonPropertyName("leader_skin_id")]
[Key("leader_skin_id")]
public int LeaderSkinId { get; set; }
[JsonPropertyName("is_random_leader_skin")]
[Key("is_random_leader_skin")]
public bool IsRandomLeaderSkin { get; set; }
[JsonPropertyName("leader_skin_id_list")]
[Key("leader_skin_id_list")]
public int[] LeaderSkinIdList { get; set; } = Array.Empty();
}