
package com.tmerclub.cloud.common.order.bo;

import com.tmerclub.cloud.common.order.vo.OrderItemLangVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author tmerclub
 * @date 2021/2/5
 */
@Data
@ToString
public class EsOrderItemBO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "商品图片", requiredMode = Schema.RequiredMode.REQUIRED)
    private String pic;

    @Schema(description = "中文商品名称", requiredMode = Schema.RequiredMode.REQUIRED)
    private String spuName;

    @Schema(description = "商品数量", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer count;

    @Schema(description = "商品价格", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long price;

    @Schema(description = "产品购买花费积分", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long useScore;

    @Schema(description = "skuId", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long skuId;

    @Schema(description = "中文skuName", requiredMode = Schema.RequiredMode.REQUIRED)
    private String skuName;

    @Schema(description = "订单项id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long orderItemId;

    @Schema(description = "商品id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long spuId;

    @Schema(description = "退款状态 1.买家申请 2.卖家接受 3.买家发货 4.卖家收货 5.退款成功  -1.退款关闭")
    private Integer returnMoneySts;

    /**
     * 订单id
     */
    private Long orderId;

    /**
     * 积分价格（单价）
     */
    private Long scoreFee;

    /**
     * 中文商品名称
     */
    private String spuNameZh;

    /**
     * 英文商品名称
     */
    private String spuNameEn;

    /**
     * 中文sku名称
     */
    private String skuNameZh;

    /**
     * 英文sku名称
     */
    private String skuNameEn;

    /**
     * 中文供应商商品名称
     */
    private String supplierSpuNameZh;

    /**
     * 英文供应商商品名称
     */
    private String supplierSpuNameEn;

    /**
     * 中文供应商sku名称
     */
    private String supplierSkuNameZh;

    /**
     * 英文供应商sku名称
     */
    private String supplierSkuNameEn;

    /**
     * 供应商图片
     */
    private String supplierPic;

    /**
     * 供应商商品名称
     */
    private String supplierSpuName;

    /**
     * 供应商sku名称
     */
    private String supplierSkuName;

    /**
     * 店铺id
     */
    private Long shopId;

    /**
     * 用户Id
     */
    private Long userId;

    /**
     * 最终的退款id
     */
    private Long finalRefundId;

    /**
     * 推广员id
     */
    private Long distributionUserId;

    /**
     * 是否以评价(0.未评价1.已评价)
     */
    private Integer isComm;

    /**
     * 评论时间
     */
    private Date commTime;

    /**
     * 订单项退款状态（1:申请退款 2:退款成功 3:部分退款成功 4:退款失败）
     */
    private Integer refundStatus;

    /**
     * 0全部发货 其他数量为剩余待发货数量
     */
    private Integer beDeliveredNum;

    /**
     * 单个orderItem的配送类型 1:快递 2:自提 3：无需快递 4:同城配送
     */
    private Integer deliveryType;

    /**
     * 加入购物车时间
     */
    private Date shopCartTime;

    /**
     * 商品总金额
     */
    private Long spuTotalAmount;

    /**
     * 商品实际金额 = 商品总金额 - 分摊的优惠金额
     */
    private Long actualTotal;

    /**
     * 分摊的优惠金额
     */
    private Long shareReduce;

    /**
     * 平台优惠金额
     */
    private Long platformShareReduce;

    /**
     * 推广员佣金
     */
    private Long distributionAmount;

    /**
     * 上级推广员佣金
     */
    private Long distributionParentAmount;

    /**
     * 获得积分
     */
    private Long gainScore;

    /**
     * 店铺改价优惠金额
     */
    private Long shopChangeFreeAmount;

    /**
     * 运费减免金额
     */
    private Long freeFreightAmount;

    /**
     * 赠品金额
     */
    private Long giveawayAmount;


    /**
     * 活动id
     */
    private Long activityId;

    /**
     *  活动类型 枚举类：OrderActivityType
     */
    private Integer activityType;

    /**
     * 平台供应商佣金
     */
    private Long purchasePlatformCommission;


    /**
     * 商品编码
     */
    private String spuCode;
    /**
     * sku编码
     */
    private String partyCode;

    /**
     * 平台一级分类id
     */
    private Long primaryCategoryId;

    /**
     * 订单项国际化信息
     * @return
     */
    private List<OrderItemLangVO> orderItemLangList;

    /**
     * 组合名称
     */
    private String comboName;

    /**
     * 核销次数 -1.多次核销 0.无需核销 1.单次核销
     */
    private Integer writeOffNum;

    /**
     * 多次核销次数 -1.无限次
     */
    private Integer writeOffMultipleCount;

    /**
     * 核销开始时间
     */
    private Date writeOffStart;

    /**
     * 核销结束时间
     */
    private Date writeOffEnd;

    /**
     * 核销结束时间
     */
    private Integer spuMold;


}
