2026-04-12 13:14:20 +08:00

257 lines
5.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.ComponentModel.DataAnnotations;
using YD_Event.Application.Certificate.Dtos;
namespace YD_Event.Application.Coupon.Dtos;
public class AddCouponInput
{
/// <summary>
/// 优惠券名称
/// </summary>
[Required(ErrorMessage = "优惠券名称不能为空")]
public string Name { get; set; }
/// <summary>
/// 类型(0-折扣 1-定额)
/// </summary>
public int Type { get; set; }
/// <summary>
/// 优惠值
/// </summary>
public decimal Value { get; set; }
/// <summary>
/// 有效期开始时间
/// </summary>
public DateTime? StartTime { get; set; }
/// <summary>
/// 有效期结束时间
/// </summary>
public DateTime? EndTime { get; set; }
/// <summary>
/// 可用赛事ID集合
/// </summary>
public List<long> EventIds { get; set; }
/// <summary>
/// 总数量
/// </summary>
public int TotalQuantity { get; set; }
}
public class UpdateCouponInput : AddCouponInput
{
/// <summary>
/// Id
/// </summary>
[Required(ErrorMessage = "Id不能为空")]
public long Id { get; set; }
}
public class CouponQueryInput : Pagination
{
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 类型
/// </summary>
public int? Type { get; set; }
}
/// <summary>
/// 优惠券分页输出参数
/// </summary>
public class CouponPageOutput
{
/// <summary>
/// ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 优惠券名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 类型(0-折扣 1-定额)
/// </summary>
public int Type { get; set; }
/// <summary>
/// 优惠值
/// </summary>
public decimal Value { get; set; }
/// <summary>
/// 有效期开始时间
/// </summary>
public DateTime? StartTime { get; set; }
/// <summary>
/// 有效期结束时间
/// </summary>
public DateTime? EndTime { get; set; }
/// <summary>
/// 适用赛事名称集合 (展示用)
/// </summary>
public string EventNames { get; set; }
/// <summary>
/// 适用赛事ID集合 (编辑回显用)
/// </summary>
public List<long> EventIds { get; set; }
/// <summary>
/// 总数量
/// </summary>
public int TotalQuantity { get; set; }
/// <summary>
/// 已领取数量
/// </summary>
public int ClaimedQuantity { get; set; }
/// <summary>
/// 已使用数量
/// </summary>
public int UsedQuantity { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedTime { get; set; }
}
/// <summary>
/// 优惠券分页结果
/// </summary>
public class CouponPageResult : PageResult<CouponPageOutput>
{
/// <summary>
/// 总页数
/// </summary>
public int TotalPage { get; set; }
}
/// <summary>
/// 赛事选择输出
/// </summary>
public class EventSelectOutput
{
/// <summary>
/// 赛事ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 赛事名称
/// </summary>
public string Name { get; set; }
}
/// <summary>
/// 生成兑换码输入
/// </summary>
public class GenerateRedemptionCodesInput
{
/// <summary>
/// 优惠券ID
/// </summary>
[Required(ErrorMessage = "优惠券ID不能为空")]
public long CouponId { get; set; }
/// <summary>
/// 生成数量
/// </summary>
[Required(ErrorMessage = "生成数量不能为空")]
[Range(1, 1000, ErrorMessage = "生成数量必须在1-1000之间")]
public int Count { get; set; }
}
/// <summary>
/// 兑换码输出
/// </summary>
public class RedemptionCodeOutput
{
/// <summary>
/// ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 优惠券ID
/// </summary>
public long CouponId { get; set; }
/// <summary>
/// 兑换码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 使用状态(0-未使用 1-已使用)
/// </summary>
public int Status { get; set; }
/// <summary>
/// 使用时间
/// </summary>
public DateTime? UsedTime { get; set; }
/// <summary>
/// 关联的用户优惠券ID
/// </summary>
public long? UserCouponId { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedTime { get; set; }
}
/// <summary>
/// 使用兑换码输入
/// </summary>
public class UseRedemptionCodeInput
{
/// <summary>
/// 兑换码
/// </summary>
[Required(ErrorMessage = "兑换码不能为空")]
public string Code { get; set; }
/// <summary>
/// 用户ID
/// </summary>
public long? UserId { get; set; }
}
/// <summary>
/// 兑换码查询输入
/// </summary>
public class RedemptionCodeQueryInput : Pagination
{
/// <summary>
/// 优惠券ID
/// </summary>
public long? CouponId { get; set; }
/// <summary>
/// 使用状态(0-未使用 1-已使用)
/// </summary>
public int? Status { get; set; }
/// <summary>
/// 兑换码(模糊查询)
/// </summary>
public string? Code { get; set; }
}