using System.Text.Json.Serialization;

namespace HoneyBox.Model.Models.FloatBall;

/// <summary>
/// 悬浮球配置响应DTO
/// 排除 status, created_at, updated_at 字段
/// </summary>
public class FloatBallResponse
{
    /// <summary>
    /// 主键ID
    /// </summary>
    [JsonPropertyName("id")]
    public int Id { get; set; }

    /// <summary>
    /// 类型: 1展示图片 2跳转页面
    /// </summary>
    [JsonPropertyName("type")]
    public int Type { get; set; }

    /// <summary>
    /// 悬浮球图片URL
    /// </summary>
    [JsonPropertyName("image")]
    public string Image { get; set; } = string.Empty;

    /// <summary>
    /// 跳转链接
    /// </summary>
    [JsonPropertyName("link_url")]
    public string LinkUrl { get; set; } = string.Empty;

    /// <summary>
    /// X轴位置
    /// </summary>
    [JsonPropertyName("position_x")]
    public string PositionX { get; set; } = string.Empty;

    /// <summary>
    /// Y轴位置
    /// </summary>
    [JsonPropertyName("position_y")]
    public string PositionY { get; set; } = string.Empty;

    /// <summary>
    /// 宽度
    /// </summary>
    [JsonPropertyName("width")]
    public string Width { get; set; } = string.Empty;

    /// <summary>
    /// 高度
    /// </summary>
    [JsonPropertyName("height")]
    public string Height { get; set; } = string.Empty;

    /// <summary>
    /// 特效: 0无 1缩放动画
    /// </summary>
    [JsonPropertyName("effect")]
    public int Effect { get; set; }

    /// <summary>
    /// 标题
    /// </summary>
    [JsonPropertyName("title")]
    public string? Title { get; set; }

    /// <summary>
    /// 详情图片URL
    /// </summary>
    [JsonPropertyName("image_details")]
    public string? ImageDetails { get; set; }

    /// <summary>
    /// 背景图片URL
    /// </summary>
    [JsonPropertyName("image_bj")]
    public string? ImageBj { get; set; }

    /// <summary>
    /// 详情图片X偏移
    /// </summary>
    [JsonPropertyName("image_details_x")]
    public string? ImageDetailsX { get; set; }

    /// <summary>
    /// 详情图片Y偏移
    /// </summary>
    [JsonPropertyName("image_details_y")]
    public string? ImageDetailsY { get; set; }

    /// <summary>
    /// 详情图片宽度
    /// </summary>
    [JsonPropertyName("image_details_w")]
    public string? ImageDetailsW { get; set; }

    /// <summary>
    /// 详情图片高度
    /// </summary>
    [JsonPropertyName("image_details_h")]
    public string? ImageDetailsH { get; set; }
}
