package cn.newfeifan.mall.module.distri.service.dailybill.dto;


import lombok.Data;

import java.math.BigDecimal;

@Data
public class OrderItemDTO {
    /**
     * 编号
     */
    private Long id;
    /**
     * 订单编号
     */
    private Long orderId;

    // ========== 商品基本信息; 冗余较多字段，减少关联查询 ==========
    /**
     * 商品 SPU 编号
     * 关联 ProductSkuDO 的 spuId 编号
     */
    private Long spuId;
    /**
     * 商品 SKU 编号
     */
    private Long skuId;
    /**
     * 购买数量
     */
    private Integer count;

    // ========== 价格 + 支付基本信息 ==========

    /**
     * 商品原价（单），单位：分
     * 对应 ProductSkuDO 的 price 字段
     * 对应 taobao 的 order.price 字段
     */
    private Integer price;
    /**
     * 优惠金额（总），单位：分
     * 对应 taobao 的 order.discount_fee 字段
     */
    private Integer discountPrice;
    /**
     * 运费金额（总），单位：分
     */
    private Integer deliveryPrice;
    /**
     * 订单调价（总），单位：分
     * 正数，加价；负数，减价
     */
    private Integer adjustPrice;
    /**
     * 应付金额（总），单位：分
     * = {@link #price} * {@link #count}
     * - {@link #discountPrice}
     * + {@link #deliveryPrice}
     * + {@link #adjustPrice}
     */
    private Integer payPrice;

    /**
     * 支付积分
     */
    private Long payIntegral;

    /**
     * 消费分
     */
    private Long payConsumptionPoints;

    /**
     * 实付人民币，单位：分
     */
    private Integer payRmb;

    /**
     * 高精度价格
     */
    private BigDecimal highPrecisionPrice;

    /**
     * 推广费, 单位: 分
     */
    private Integer promotionFee;
    /**
     * 成本价，单位： 分
     */
    private Integer costPrice;

    /**
     * 结算价，单位： 分
     */
    private Integer settlementPrice;
    /**
     * 高精度结算价
     */
    private BigDecimal highPrecisionSettlementPrice;
}
