2026-02-07 16:03:52 +08:00
|
|
|
|
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; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-18 13:47:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 优惠券分页输出参数
|
|
|
|
|
|
/// </summary>
|
2026-02-07 16:03:52 +08:00
|
|
|
|
public class CouponPageOutput
|
|
|
|
|
|
{
|
2026-03-18 13:47:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// ID
|
|
|
|
|
|
/// </summary>
|
2026-02-07 16:03:52 +08:00
|
|
|
|
public long Id { get; set; }
|
2026-03-18 13:47:34 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 优惠券名称
|
|
|
|
|
|
/// </summary>
|
2026-02-07 16:03:52 +08:00
|
|
|
|
public string Name { get; set; }
|
2026-03-18 13:47:34 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 类型(0-折扣 1-定额)
|
|
|
|
|
|
/// </summary>
|
2026-02-07 16:03:52 +08:00
|
|
|
|
public int Type { get; set; }
|
2026-03-18 13:47:34 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 优惠值
|
|
|
|
|
|
/// </summary>
|
2026-02-07 16:03:52 +08:00
|
|
|
|
public decimal Value { get; set; }
|
2026-03-18 13:47:34 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 有效期开始时间
|
|
|
|
|
|
/// </summary>
|
2026-02-07 16:03:52 +08:00
|
|
|
|
public DateTime? StartTime { get; set; }
|
2026-03-18 13:47:34 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 有效期结束时间
|
|
|
|
|
|
/// </summary>
|
2026-02-07 16:03:52 +08:00
|
|
|
|
public DateTime? EndTime { get; set; }
|
2026-03-18 13:47:34 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 适用赛事名称集合 (展示用)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string EventNames { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 适用赛事ID集合 (编辑回显用)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public List<long> EventIds { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 总数量
|
|
|
|
|
|
/// </summary>
|
2026-02-07 16:03:52 +08:00
|
|
|
|
public int TotalQuantity { get; set; }
|
2026-03-18 13:47:34 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 已领取数量
|
|
|
|
|
|
/// </summary>
|
2026-02-07 16:03:52 +08:00
|
|
|
|
public int ClaimedQuantity { get; set; }
|
2026-03-18 13:47:34 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 已使用数量
|
|
|
|
|
|
/// </summary>
|
2026-02-07 16:03:52 +08:00
|
|
|
|
public int UsedQuantity { get; set; }
|
2026-03-18 13:47:34 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 创建时间
|
|
|
|
|
|
/// </summary>
|
2026-02-07 16:03:52 +08:00
|
|
|
|
public DateTime CreatedTime { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-18 13:47:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 优惠券分页结果
|
|
|
|
|
|
/// </summary>
|
2026-02-07 16:03:52 +08:00
|
|
|
|
public class CouponPageResult : PageResult<CouponPageOutput>
|
|
|
|
|
|
{
|
2026-03-18 13:47:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 总页数
|
|
|
|
|
|
/// </summary>
|
2026-02-07 16:03:52 +08:00
|
|
|
|
public int TotalPage { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-18 13:47:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 赛事选择输出
|
|
|
|
|
|
/// </summary>
|
2026-02-07 16:03:52 +08:00
|
|
|
|
public class EventSelectOutput
|
|
|
|
|
|
{
|
2026-03-18 13:47:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 赛事ID
|
|
|
|
|
|
/// </summary>
|
2026-02-07 16:03:52 +08:00
|
|
|
|
public long Id { get; set; }
|
2026-03-18 13:47:34 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 赛事名称
|
|
|
|
|
|
/// </summary>
|
2026-02-07 16:03:52 +08:00
|
|
|
|
public string Name { get; set; }
|
|
|
|
|
|
}
|
2026-04-12 13:14:20 +08:00
|
|
|
|
|
|
|
|
|
|
/// <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; }
|
|
|
|
|
|
}
|