- 新增 VIP 天数概念,支持月数与天数组合计算过期时间 - 激活码商品新增 VipDays 配置,并新增 1 天会员试用组合包 - VIP 充值统一按天数计算(1 个月 = 31 天),兼容原有逻辑 - 激活码兑换时支持仅天数或天月组合的 VIP 充值
50 lines
1.4 KiB
C#
50 lines
1.4 KiB
C#
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; }
|
||
} |