using MessagePack;
using System.Text.Json.Serialization;

namespace SVSim.EmulatedEntrypoint.Models.Dtos;

/// <summary>
/// user_mypage_info — wrapper around the active home-screen background
/// configuration. Client constructs MyPageBGInfo(user_mypage_setting) at
/// MyPageTask.cs:176.
/// </summary>
[MessagePackObject]
public class UserMyPageInfo
{
    [JsonPropertyName("user_mypage_setting")]
    [Key("user_mypage_setting")]
    public MyPageBgSetting UserMyPageSetting { get; set; } = new();
}

/// <summary>
/// Active mypage background selection. Shape from prod 2026-05-23.
/// </summary>
[MessagePackObject]
public class MyPageBgSetting
{
    [JsonPropertyName("mypage_id")]
    [Key("mypage_id")]
    public int MyPageId { get; set; }

    /// <summary>0 = single selection (mypage_id), 1+ = random rotation across mypage_id_list.</summary>
    [JsonPropertyName("select_type")]
    [Key("select_type")]
    public int SelectType { get; set; }

    [JsonPropertyName("mypage_id_list")]
    [Key("mypage_id_list")]
    public List<int> MyPageIdList { get; set; } = new();
}
