using System.ComponentModel.DataAnnotations; using Tiku.Application.Points; namespace Tiku.Api.Contracts; /// /// 积分查询参数。 /// public sealed class PointQueryDto { /// /// 返回数量上限。 /// [Range(1, 200)] public int? Limit { get; set; } /// /// 状态。 /// [StringLength(32)] public string? Status { get; set; } /// /// 地区 ID。 /// public Guid? RegionId { get; set; } public PointLimitQuery ToQuery() { return new PointLimitQuery(Limit, Status, RegionId); } } /// /// 领取积分任务请求 DTO。 /// public sealed class ClaimPointTaskDto { /// /// 任务键。 /// [Required] [StringLength(100)] public string TaskKey { get; set; } = string.Empty; /// /// 来源类型。 /// [StringLength(100)] public string? SourceType { get; set; } /// /// 来源 ID。 /// public Guid? SourceId { get; set; } public ClaimPointTaskCommand ToCommand() { return new ClaimPointTaskCommand(TaskKey, SourceType, SourceId); } } /// /// 创建积分兑换订单请求 DTO。 /// public sealed class CreatePointExchangeOrderDto { /// /// 兑换项 ID。 /// [Required] public Guid ItemId { get; set; } public CreatePointExchangeOrderCommand ToCommand() { return new CreatePointExchangeOrderCommand(ItemId); } }