package com.hzs.common.domain.sale.order;

import com.baomidou.mybatisplus.annotation.*;
import com.hzs.common.core.web.domain.BaseEntity;
import lombok.*;
import lombok.experimental.Accessors;
import org.apache.ibatis.type.JdbcType;

import java.math.BigDecimal;

/**
 * 销售订单-明细表
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@KeySequence("SA_ORDER_ITEMS_SEQ")
@TableName("SA_ORDER_ITEMS")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SaOrderItems extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId("PK_ID")
    private Long pkId;

    /**
     * 销售订单主表
     */
    @TableField("PK_ORDER")
    private Long pkOrder;

    /**
     * 产品主键
     */
    @TableField("PK_PRODUCT")
    private Integer pkProduct;

    /**
     * 商品主键
     */
    @TableField("PK_WARES")
    private Integer pkWares;

    /**
     * 商品明细主键
     */
    @TableField("PK_WARES_DETAIL")
    private Integer pkWaresDetail;

    /**
     * sku主键
     */
    @TableField("PK_WARES_SPECS_SKU")
    private Integer pkWaresSpecsSku;

    /**
     * 价格
     */
    @TableField("PRICE")
    private BigDecimal price;

    /**
     * 汇率
     */
    @TableField("PK_RATE")
    private Integer pkRate;

    /**
     * 业绩
     */
    @TableField("ACHIEVEMENT")
    private BigDecimal achievement;

    /**
     * 考核业绩
     */
    @TableField("ASS_ACHIEVEMENT")
    private BigDecimal assAchievement;

    /**
     * 数量
     */
    @TableField("QUANTITY")
    private Integer quantity;

    /**
     * 商品数量
     */
    @TableField("WARES_QUANTITY")
    private Integer waresQuantity;

    /**
     * 等级
     */
    @TableField("PK_GRADE")
    private Integer pkGrade;

    /**
     * 奖衔
     */
    @TableField("PK_AWARDS")
    private Integer pkAwards;

    /**
     * 订单状态 (0=待支付,1=已支付,2=发货中,3=已发货)
     */
    @TableField("ORDER_STATUS")
    private Integer orderStatus;

    /**
     * 是否赠品
     */
    @TableField("IS_GIFT")
    private Integer isGift;

    /**
     * 产品规格（冗余显示）
     */
    @TableField("SPECS_NAME")
    private String specsName;

    /**
     * 产品规格id（冗余）
     */
    @TableField("SPECS_NAME_ID")
    private String specsNameId;

    /**
     * 是否换货（0=是，1=否）
     */
    @TableField("EXCHANGE_GOODS")
    private Integer exchangeGoods;

    /**
     * 物流单号
     */
    @TableField(value = "LOGISTICS_CODE", jdbcType = JdbcType.VARCHAR, updateStrategy = FieldStrategy.IGNORED)
    private String logisticsCode;

    /**
     * 物流公司
     */
    @TableField(value = "LOGISTICS_COMPANY", jdbcType = JdbcType.VARCHAR, updateStrategy = FieldStrategy.IGNORED)
    private String logisticsCompany;

    /**
     * 商品类型（1=普通商品）
     */
    @TableField("IS_MAKER_GIFT")
    private Integer isMakerGift;

    /**
     * 消费配置主键
     */
    @TableField("PK_SPECIAL_CURRENCY")
    private Integer pkSpecialCurrency;

    /**
     * 创客空间id
     */
    @TableField(exist = false)
    private Long pkMakerSpace;

    /**
     * SKU编码（产品编号+规格ID，以-间隔）
     */
    @TableField("SKU_CODE")
    private String skuCode;


    /**
     * 发货渠道 1 总仓发货 2 一件代发
     */
    @TableField("SHIPPING_CHANNEL")
    private Integer shippingChannel;

    /**
     * 供应商
     */
    @TableField(value = "PK_SUPPLIER", jdbcType = JdbcType.NUMERIC, updateStrategy = FieldStrategy.IGNORED)
    private Integer pkSupplier;

    /**
     * 仓库
     */
    @TableField("pk_storehouse")
    private Integer pkStorehouse;

    /**
     * 商品编号
     */
    @TableField(exist = false)
    private String wareCode;

}
