using Oms.Application.Dtos.Marketing; namespace Oms.Application.Dtos.Orders; /// /// 订单支付入参(支付时选券)。 /// public class OrderPayInput : OrderActionInput { /// /// 选用的优惠券实例 Id:null 沿用订单已绑定的券(不可用则不使用);0 不使用券;大于 0 使用指定券。 /// public int? CouponInstanceId { get; set; } } /// /// 订单支付预览入参。 /// public class OrderPayPreviewInput { /// /// 订单主键。 /// public int Id { get; set; } /// /// 试算用券:null 自动推荐(优先已绑定券,否则选优惠最大且优于会员折的券);0 不使用券;大于 0 使用指定券。 /// public int? CouponInstanceId { get; set; } } /// /// 订单支付预览:应付拆解与可选券。 /// public class OrderPayPreviewOutput { /// /// 订单主键。 /// public int Id { get; set; } /// /// 应收小计(折前)。 /// public decimal ReceivableSubtotal { get; set; } /// /// 基础运费(券门槛与抵扣口径)。 /// public decimal BaseFreightAmount { get; set; } /// /// 会员折扣金额(与券互斥,用券时为 0)。 /// public decimal LevelDiscountAmount { get; set; } /// /// 优惠券抵扣金额。 /// public decimal CouponDiscountAmount { get; set; } /// /// 实际应付金额(支付扣款金额)。 /// public decimal PayableAmount { get; set; } /// /// 会员等级名称。 /// public string? MemberLevelName { get; set; } /// /// 本次试算实际生效的券实例 Id;为空表示未用券。 /// public int? AppliedCouponInstanceId { get; set; } /// /// 当前客户可选券(CanUse=false 时附不可用原因,含「优惠不高于会员折扣」)。 /// public List AvailableCoupons { get; set; } = []; }