namespace HoneyBox.Admin.Business.Models.Finance;

/// <summary>
/// 财务查询请求
/// </summary>
public class FinanceQueryRequest : PagedRequest
{
    /// <summary>
    /// 用户ID
    /// </summary>
    public int? UserId { get; set; }

    /// <summary>
    /// 手机号
    /// </summary>
    public string? Mobile { get; set; }

    /// <summary>
    /// 开始日期
    /// </summary>
    public DateTime? StartDate { get; set; }

    /// <summary>
    /// 结束日期
    /// </summary>
    public DateTime? EndDate { get; set; }
}

/// <summary>
/// 消费排行榜响应
/// </summary>
public class ConsumptionRankingResponse
{
    /// <summary>
    /// 用户ID
    /// </summary>
    public int UserId { get; set; }

    /// <summary>
    /// 用户UID
    /// </summary>
    public string? Uid { get; set; }

    /// <summary>
    /// 昵称
    /// </summary>
    public string? Nickname { get; set; }

    /// <summary>
    /// 头像
    /// </summary>
    public string? Avatar { get; set; }

    /// <summary>
    /// 手机号
    /// </summary>
    public string? Mobile { get; set; }

    /// <summary>
    /// 总消费金额
    /// </summary>
    public decimal TotalConsumption { get; set; }

    /// <summary>
    /// 微信支付金额
    /// </summary>
    public decimal WeChatPayment { get; set; }

    /// <summary>
    /// 余额支付金额
    /// </summary>
    public decimal BalancePayment { get; set; }

    /// <summary>
    /// 积分支付金额
    /// </summary>
    public decimal IntegralPayment { get; set; }

    /// <summary>
    /// 注册时间
    /// </summary>
    public DateTime CreatedAt { get; set; }
}

/// <summary>
/// 余额明细响应
/// </summary>
public class BalanceDetailResponse
{
    /// <summary>
    /// 记录ID
    /// </summary>
    public int Id { get; set; }

    /// <summary>
    /// 用户ID
    /// </summary>
    public int UserId { get; set; }

    /// <summary>
    /// 用户UID
    /// </summary>
    public string? Uid { get; set; }

    /// <summary>
    /// 昵称
    /// </summary>
    public string? Nickname { get; set; }

    /// <summary>
    /// 手机号
    /// </summary>
    public string? Mobile { get; set; }

    /// <summary>
    /// 变动金额
    /// </summary>
    public decimal ChangeMoney { get; set; }

    /// <summary>
    /// 变动后余额
    /// </summary>
    public decimal Money { get; set; }

    /// <summary>
    /// 变动类型
    /// </summary>
    public byte Type { get; set; }

    /// <summary>
    /// 变动说明
    /// </summary>
    public string Content { get; set; } = string.Empty;

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

/// <summary>
/// 积分明细响应
/// </summary>
public class IntegralDetailResponse
{
    /// <summary>
    /// 记录ID
    /// </summary>
    public int Id { get; set; }

    /// <summary>
    /// 用户ID
    /// </summary>
    public int UserId { get; set; }

    /// <summary>
    /// 用户UID
    /// </summary>
    public string? Uid { get; set; }

    /// <summary>
    /// 昵称
    /// </summary>
    public string? Nickname { get; set; }

    /// <summary>
    /// 手机号
    /// </summary>
    public string? Mobile { get; set; }

    /// <summary>
    /// 变动积分
    /// </summary>
    public decimal ChangeMoney { get; set; }

    /// <summary>
    /// 变动后积分
    /// </summary>
    public decimal Money { get; set; }

    /// <summary>
    /// 变动类型
    /// </summary>
    public byte Type { get; set; }

    /// <summary>
    /// 变动说明
    /// </summary>
    public string Content { get; set; } = string.Empty;

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

/// <summary>
/// 钻石明细响应
/// </summary>
public class ScoreDetailResponse
{
    /// <summary>
    /// 记录ID
    /// </summary>
    public int Id { get; set; }

    /// <summary>
    /// 用户ID
    /// </summary>
    public int UserId { get; set; }

    /// <summary>
    /// 用户UID
    /// </summary>
    public string? Uid { get; set; }

    /// <summary>
    /// 昵称
    /// </summary>
    public string? Nickname { get; set; }

    /// <summary>
    /// 手机号
    /// </summary>
    public string? Mobile { get; set; }

    /// <summary>
    /// 变动钻石
    /// </summary>
    public decimal ChangeMoney { get; set; }

    /// <summary>
    /// 变动后钻石
    /// </summary>
    public decimal Money { get; set; }

    /// <summary>
    /// 变动类型
    /// </summary>
    public byte Type { get; set; }

    /// <summary>
    /// 变动说明
    /// </summary>
    public string Content { get; set; } = string.Empty;

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

/// <summary>
/// 充值记录响应
/// </summary>
public class RechargeRecordResponse
{
    /// <summary>
    /// 记录ID
    /// </summary>
    public int Id { get; set; }

    /// <summary>
    /// 用户ID
    /// </summary>
    public int UserId { get; set; }

    /// <summary>
    /// 用户UID
    /// </summary>
    public string? Uid { get; set; }

    /// <summary>
    /// 昵称
    /// </summary>
    public string? Nickname { get; set; }

    /// <summary>
    /// 手机号
    /// </summary>
    public string? Mobile { get; set; }

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

    /// <summary>
    /// 充值金额
    /// </summary>
    public decimal ChangeMoney { get; set; }

    /// <summary>
    /// 充值说明
    /// </summary>
    public string Content { get; set; } = string.Empty;

    /// <summary>
    /// 支付类型
    /// </summary>
    public byte PayType { get; set; }

    /// <summary>
    /// 支付类型名称
    /// </summary>
    public string PayTypeName { get; set; } = string.Empty;

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