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

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.web.domain.BaseEntity;
import lombok.*;
import lombok.experimental.Accessors;

/**
 * 销售订单-主表
 */
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@KeySequence("SA_ORDER_SEQ")
@TableName("SA_ORDER")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SaOrder extends BaseEntity {

    private static final long serialVersionUID = 6023238942173688917L;

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

    /**
     * 订单编号
     */
    @TableField("ORDER_CODE")
    private String orderCode;

    /**
     * 订单类型 来源于专区设置
     */
    @TableField("ORDER_TYPE")
    private Integer orderType;

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

    /**
     * 订单实际金额
     */
    @TableField("ORDER_AMOUNT")
    private BigDecimal orderAmount;

    /**
     * 订单实际业绩
     */
    @TableField("ORDER_ACHIEVE")
    private BigDecimal orderAchieve;

    /**
     * 订单实际考核业绩
     */
    @TableField("ORDER_ASS_ACHIEVE")
    private BigDecimal orderAssAchieve;

    /**
     * 邮费
     */
    @TableField("POSTAGE")
    private BigDecimal postage;

    /**
     * 会员编号
     */
    @TableField("PK_MEMBER")
    private Long pkMember;

    /**
     * 收货人
     */
    @TableField("REC_NAME")
    private String recName;

    /**
     * 收货电话
     */
    @TableField("REC_PHONE")
    private String recPhone;

    /**
     * 省
     */
    @TableField("REC_PROVINCE")
    private Integer recProvince;

    /**
     * 市
     */
    @TableField("REC_CITY")
    private Integer recCity;

    /**
     * 县
     */
    @TableField("REC_COUNTY")
    private Integer recCounty;

    /**
     * 收货地址
     */
    @TableField("REC_ADDRESS")
    private String recAddress;

    /**
     * 支付时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("PAY_TIME")
    private Date payTime;
    @TableField(exist = false)
    private String payTimeStr;

    /**
     * 备注
     */
    @TableField("REMARK")
    private String remark;

    /**
     * 推荐人编号
     */
    @TableField("PK_REFERENCE")
    private Long pkReference;

    /**
     * 安置人编号
     */
    @TableField("PK_PLACEMENT")
    private Long pkPlacement;

    /**
     * 运输方式 ETransportType
     */
    @TableField("TRAN_TYPE")
    private Integer tranType;

    /**
     * EDelivery
     * 发货方式 (1=快递,2=公司自提,3=店铺自提,4=店铺配送)
     */
    @TableField("DELIVERY_WAY")
    private Integer deliveryWay;

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

    /**
     * 顶点,用于统计六合
     */
    @TableField("PK_VERTEX")
    private Long pkVertex;

    /**
     * 支付方式（0=钱包）
     */
    @TableField("PAY_TYPE")
    private Integer payType;

    /**
     * 店铺
     */
    @TableField("PK_MEMBER_STORE")
    private Integer pkMemberStore;

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

    /**
     * 原订单（目前二次发货关联显示原订单）
     */
    @TableField("PK_ORIGINAL_ORDER")
    private Long pkOriginalOrder;

    /**
     * 上传业绩
     */
    @TableField("UPLOAD_ACHIEVE")
    private BigDecimal uploadAchieve;

    @TableField(exist = false)
    private String modifiedTimeStr;

    /**
     * 购买订单前的等级
     */
    @TableField(exist = false)
    private Integer orderPkGrade;

}
