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; } = [];
}