namespace HoneyBox.Admin.Business.Models.Announcement;

#region Response Models

/// <summary>
/// 公告管理响应DTO
/// </summary>
public class AnnouncementAdminDto
{
    /// <summary>
    /// 公告ID
    /// </summary>
    public int Id { get; set; }

    /// <summary>
    /// 用户头像URL
    /// </summary>
    public string UserAvatar { get; set; } = string.Empty;

    /// <summary>
    /// 用户名称
    /// </summary>
    public string UserName { get; set; } = string.Empty;

    /// <summary>
    /// 奖品等级（如：无上、传说、史诗、稀有）
    /// </summary>
    public string PrizeLevel { get; set; } = string.Empty;

    /// <summary>
    /// 奖品名称
    /// </summary>
    public string PrizeName { get; set; } = string.Empty;

    /// <summary>
    /// 排序值，越小越靠前
    /// </summary>
    public int Sort { get; set; }

    /// <summary>
    /// 是否启用
    /// </summary>
    public bool IsEnabled { get; set; }

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

    /// <summary>
    /// 更新时间
    /// </summary>
    public DateTime UpdatedAt { get; set; }
}

#endregion

#region Request Models

/// <summary>
/// 创建公告请求
/// </summary>
public class CreateAnnouncementRequest
{
    /// <summary>
    /// 用户头像URL
    /// </summary>
    public string UserAvatar { get; set; } = string.Empty;

    /// <summary>
    /// 用户名称（必填）
    /// </summary>
    public string UserName { get; set; } = string.Empty;

    /// <summary>
    /// 奖品等级（必填，如：无上、传说、史诗、稀有）
    /// </summary>
    public string PrizeLevel { get; set; } = string.Empty;

    /// <summary>
    /// 奖品名称（必填）
    /// </summary>
    public string PrizeName { get; set; } = string.Empty;

    /// <summary>
    /// 排序值，越小越靠前
    /// </summary>
    public int Sort { get; set; }

    /// <summary>
    /// 是否启用
    /// </summary>
    public bool IsEnabled { get; set; } = true;
}

/// <summary>
/// 更新公告请求
/// </summary>
public class UpdateAnnouncementRequest
{
    /// <summary>
    /// 用户头像URL（可选，不传则不更新）
    /// </summary>
    public string? UserAvatar { get; set; }

    /// <summary>
    /// 用户名称（可选，不传则不更新）
    /// </summary>
    public string? UserName { get; set; }

    /// <summary>
    /// 奖品等级（可选，不传则不更新）
    /// </summary>
    public string? PrizeLevel { get; set; }

    /// <summary>
    /// 奖品名称（可选，不传则不更新）
    /// </summary>
    public string? PrizeName { get; set; }

    /// <summary>
    /// 排序值（可选，不传则不更新）
    /// </summary>
    public int? Sort { get; set; }

    /// <summary>
    /// 是否启用（可选，不传则不更新）
    /// </summary>
    public bool? IsEnabled { get; set; }
}

#endregion
