namespace HoneyBox.Admin.Business.Models.FloatBall;

#region Response Models

/// <summary>
/// 悬浮球列表响应模型
/// </summary>
public class FloatBallResponse
{
    /// <summary>
    /// 主键ID
    /// </summary>
    public int Id { get; set; }

    /// <summary>
    /// 标题
    /// </summary>
    public string? Title { get; set; }

    /// <summary>
    /// 类型: 1展示图片 2跳转页面
    /// </summary>
    public int Type { get; set; }

    /// <summary>
    /// 悬浮球图片URL
    /// </summary>
    public string Image { get; set; } = string.Empty;

    /// <summary>
    /// 背景图片URL
    /// </summary>
    public string? ImageBj { get; set; }

    /// <summary>
    /// 详情图片URL
    /// </summary>
    public string? ImageDetails { get; set; }

    /// <summary>
    /// 跳转链接
    /// </summary>
    public string LinkUrl { get; set; } = string.Empty;

    /// <summary>
    /// X轴位置
    /// </summary>
    public string PositionX { get; set; } = string.Empty;

    /// <summary>
    /// Y轴位置
    /// </summary>
    public string PositionY { get; set; } = string.Empty;

    /// <summary>
    /// 宽度
    /// </summary>
    public string Width { get; set; } = string.Empty;

    /// <summary>
    /// 高度
    /// </summary>
    public string Height { get; set; } = string.Empty;

    /// <summary>
    /// 详情图片X偏移
    /// </summary>
    public string? ImageDetailsX { get; set; }

    /// <summary>
    /// 详情图片Y偏移
    /// </summary>
    public string? ImageDetailsY { get; set; }

    /// <summary>
    /// 详情图片宽度
    /// </summary>
    public string? ImageDetailsW { get; set; }

    /// <summary>
    /// 详情图片高度
    /// </summary>
    public string? ImageDetailsH { get; set; }

    /// <summary>
    /// 特效: 0无 1缩放动画
    /// </summary>
    public int Effect { get; set; }

    /// <summary>
    /// 状态: 0关闭 1开启
    /// </summary>
    public int Status { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    public DateTime CreatedAt { get; set; }
}

#endregion

#region Request Models

/// <summary>
/// 悬浮球列表查询请求
/// </summary>
public class FloatBallListRequest : PagedRequest
{
}

/// <summary>
/// 悬浮球创建请求模型
/// </summary>
public class FloatBallCreateRequest
{
    /// <summary>
    /// 标题
    /// </summary>
    public string? Title { get; set; }

    /// <summary>
    /// 类型: 1展示图片 2跳转页面
    /// </summary>
    public int Type { get; set; }

    /// <summary>
    /// 悬浮球图片URL（必填）
    /// </summary>
    public string Image { get; set; } = string.Empty;

    /// <summary>
    /// 背景图片URL
    /// </summary>
    public string? ImageBj { get; set; }

    /// <summary>
    /// 详情图片URL
    /// </summary>
    public string? ImageDetails { get; set; }

    /// <summary>
    /// 跳转链接（类型为跳转页面时使用）
    /// </summary>
    public string? LinkUrl { get; set; }

    /// <summary>
    /// X轴位置（必填）
    /// </summary>
    public string PositionX { get; set; } = string.Empty;

    /// <summary>
    /// Y轴位置（必填）
    /// </summary>
    public string PositionY { get; set; } = string.Empty;

    /// <summary>
    /// 宽度（必填）
    /// </summary>
    public string Width { get; set; } = string.Empty;

    /// <summary>
    /// 高度（必填）
    /// </summary>
    public string Height { get; set; } = string.Empty;

    /// <summary>
    /// 详情图片X偏移
    /// </summary>
    public string? ImageDetailsX { get; set; }

    /// <summary>
    /// 详情图片Y偏移
    /// </summary>
    public string? ImageDetailsY { get; set; }

    /// <summary>
    /// 详情图片宽度
    /// </summary>
    public string? ImageDetailsW { get; set; }

    /// <summary>
    /// 详情图片高度
    /// </summary>
    public string? ImageDetailsH { get; set; }

    /// <summary>
    /// 特效: 0无 1缩放动画（必填）
    /// </summary>
    public int Effect { get; set; }

    /// <summary>
    /// 状态: 0关闭 1开启，默认开启
    /// </summary>
    public int Status { get; set; } = 1;
}

/// <summary>
/// 悬浮球更新请求模型
/// </summary>
public class FloatBallUpdateRequest
{
    /// <summary>
    /// 标题
    /// </summary>
    public string? Title { get; set; }

    /// <summary>
    /// 类型: 1展示图片 2跳转页面
    /// </summary>
    public int Type { get; set; }

    /// <summary>
    /// 悬浮球图片URL（必填）
    /// </summary>
    public string Image { get; set; } = string.Empty;

    /// <summary>
    /// 背景图片URL
    /// </summary>
    public string? ImageBj { get; set; }

    /// <summary>
    /// 详情图片URL
    /// </summary>
    public string? ImageDetails { get; set; }

    /// <summary>
    /// 跳转链接（类型为跳转页面时使用）
    /// </summary>
    public string? LinkUrl { get; set; }

    /// <summary>
    /// X轴位置（必填）
    /// </summary>
    public string PositionX { get; set; } = string.Empty;

    /// <summary>
    /// Y轴位置（必填）
    /// </summary>
    public string PositionY { get; set; } = string.Empty;

    /// <summary>
    /// 宽度（必填）
    /// </summary>
    public string Width { get; set; } = string.Empty;

    /// <summary>
    /// 高度（必填）
    /// </summary>
    public string Height { get; set; } = string.Empty;

    /// <summary>
    /// 详情图片X偏移
    /// </summary>
    public string? ImageDetailsX { get; set; }

    /// <summary>
    /// 详情图片Y偏移
    /// </summary>
    public string? ImageDetailsY { get; set; }

    /// <summary>
    /// 详情图片宽度
    /// </summary>
    public string? ImageDetailsW { get; set; }

    /// <summary>
    /// 详情图片高度
    /// </summary>
    public string? ImageDetailsH { get; set; }

    /// <summary>
    /// 特效: 0无 1缩放动画（必填）
    /// </summary>
    public int Effect { get; set; }

    /// <summary>
    /// 状态: 0关闭 1开启
    /// </summary>
    public int Status { get; set; }
}

/// <summary>
/// 悬浮球状态切换请求模型
/// </summary>
public class FloatBallStatusRequest
{
    /// <summary>
    /// 状态: 0关闭 1开启
    /// </summary>
    public int Status { get; set; }
}

#endregion
