using System.ComponentModel.DataAnnotations;

namespace Yi.Framework.AiHub.Application.Contracts.Dtos.Recharge;

public class RechargeCreateInput
{
    /// <summary>
    /// 用户ID
    /// </summary>
    [Required]
    public Guid UserId { get; set; }

    /// <summary>
    /// 充值金额
    /// </summary>
    [Required]
    [Range(0.01, double.MaxValue, ErrorMessage = "充值金额必须大于0")]
    public decimal RechargeAmount { get; set; }

    /// <summary>
    /// 充值内容
    /// </summary>
    [Required]
    [StringLength(500, ErrorMessage = "充值内容不能超过500个字符")]
    public string Content { get; set; } = string.Empty;

    /// <summary>
    /// VIP月数（为空或0表示永久VIP，1个月按31天计算）
    /// </summary>
    [Range(0, int.MaxValue, ErrorMessage = "月数必须大于等于0")]
    public int? Months { get; set; }

    /// <summary>
    /// VIP天数（为空或0表示不使用天数充值）
    /// </summary>
    [Range(0, int.MaxValue, ErrorMessage = "天数必须大于等于0")]
    public int? Days { get; set; }

    /// <summary>
    /// 备注
    /// </summary>
    [StringLength(1000, ErrorMessage = "备注不能超过1000个字符")]
    public string? Remark { get; set; }

    /// <summary>
    /// 联系方式
    /// </summary>
    [StringLength(200, ErrorMessage = "联系方式不能超过200个字符")]
    public string? ContactInfo { get; set; }
}