namespace HoneyBox.Admin.Business.Models.User;

/// <summary>
/// 用户盒柜查询请求
/// </summary>
public class UserBoxQuery : PagedRequest
{
    /// <summary>
    /// 奖品状态：0待处理，1已回收，2已发货
    /// </summary>
    public int? Status { get; set; }

    /// <summary>
    /// 奖品名称
    /// </summary>
    public string? GoodslistTitle { get; set; }

    /// <summary>
    /// 盒子名称
    /// </summary>
    public string? GoodTitle { get; set; }

    /// <summary>
    /// 开始时间
    /// </summary>
    public DateTime? StartTime { get; set; }

    /// <summary>
    /// 结束时间
    /// </summary>
    public DateTime? EndTime { get; set; }
}

/// <summary>
/// 用户盒柜项
/// </summary>
public class UserBoxItem
{
    /// <summary>
    /// 订单详情ID
    /// </summary>
    public int Id { get; set; }

    /// <summary>
    /// 奖品名称
    /// </summary>
    public string? GoodslistTitle { get; set; }

    /// <summary>
    /// 回收金额
    /// </summary>
    public decimal GoodslistMoney { get; set; }

    /// <summary>
    /// 奖品价格
    /// </summary>
    public decimal GoodslistPrice { get; set; }

    /// <summary>
    /// 奖品图片
    /// </summary>
    public string? GoodslistImgurl { get; set; }

    /// <summary>
    /// 奖品等级ID
    /// </summary>
    public int ShangId { get; set; }

    /// <summary>
    /// 奖品等级名称
    /// </summary>
    public string? ShangTitle { get; set; }

    /// <summary>
    /// 添加时间
    /// </summary>
    public DateTime Addtime { get; set; }

    /// <summary>
    /// 订单ID
    /// </summary>
    public int OrderId { get; set; }

    /// <summary>
    /// 订单编号
    /// </summary>
    public string? OrderNum { get; set; }

    /// <summary>
    /// 商品ID
    /// </summary>
    public int? GoodsId { get; set; }

    /// <summary>
    /// 盒子名称
    /// </summary>
    public string? GoodTitle { get; set; }

    /// <summary>
    /// 状态：0待处理，1已回收，2已发货
    /// </summary>
    public int Status { get; set; }

    /// <summary>
    /// 状态文本
    /// </summary>
    public string StatusText => Status switch
    {
        0 => "待处理",
        1 => "已回收",
        2 => "已发货",
        _ => "未知"
    };

    /// <summary>
    /// 发货状态
    /// </summary>
    public int FhStatus { get; set; }

    /// <summary>
    /// 发货备注
    /// </summary>
    public string? FhRemarks { get; set; }
}
