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

import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import com.hzs.common.domain.sale.order.SaOrder;
import com.hzs.common.domain.sale.order.SaOrderItems;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.List;

/**
 * 订单扩展表
 */
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Data
public class SaOrderExt extends SaOrder {

    private static final long serialVersionUID = -3941401700355967975L;

    /**
     * 会员编号
     */
    private String memberCode;
    /**
     * 会员姓名
     */
    private String memberName;
    /**
     * 会员电话
     */
    private String memberPhone;

    /**
     * 部分撤单时，记录回退的金额
     */
    private BigDecimal backOrderAmount;

    /**
     * 创建人编号
     */
    private String creatorCode;
    /**
     * 创建人姓名
     */
    private String creatorName;

    /**
     * 结算国
     */
    private Integer pkSettleCountry;


    /**
     * 审核状态（0=待提交，1=待审核，2=审核通过，3=审核驳回）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.APPROVE_RECHARGE_OPERATION)
    private Integer approveStatus;
    /**
     * 审核状态（0=待提交，1=待审核，2=审核通过，3=审核驳回）
     */
    private String approveStatusVal;

    /**
     * 报单中心ID
     */
    private Long pkCenterCode;

    /**
     * 店铺等级
     */
    private Integer pkStoreLevel;

    /**
     * 订单明细表
     */
    private List<SaOrderItems> orderItemsList;

    /**
     * 订单明细扩展列表
     */
    private List<SaOrderItemsExt> orderItemsExtList;

    /**
     * 渠道类型（0=直销订单，后续根据 EMerchantType 枚举来）
     */
    private Integer merchantType;

    /**
     * 汇率
     */
    private BigDecimal inExchangeRate;

    /**
     * 业务类型
     */
    private Integer editType;

    /**
     * 提货码
     */
    private String selfCode;

    /**
     * 省
     */

    private Integer province;

    /**
     * 市
     */
    private Integer city;

    /**
     * 地址
     */
    private String address;

    /**
     * 店铺会员主键
     */
    private Long storeMember;

    /**
     * 比例
     */
    private BigDecimal ratio;

    /**
     * 等级
     */
    private Integer levelValue;

    private String storeLevelName;

    private Integer storeProvince;

    private Integer resaleIncomeNumber;

    /**
     * 订单下单省
     */
    private Integer orderRecProvince;

    private String recProvinceName;
    /**
     * 订单下单市
     */
    private Integer orderRecCity;

    private String recCityName;

    /**
     * 订单下单区县
     */
    private Integer orderRecCounty;

    private String recCountyName;

    /**
     * 订单下单详细地址
     */
    private String orderRecAddress;


    /**
     * 公司
     */
    private Integer pkCorp;

    /**
     * 店铺名称
     */
    private String storeName;

    /**
     * 店铺编号
     */
    private String storeCode;

    /**
     * 奖金比例
     */
    private BigDecimal bonusRatio;

    /**
     * 发放状态 (1=已结算 2=已公布 3=已发放 4=可提现)
     */
    private Integer grantStatus;

    /**
     * 会员编号
     */
    private String payMemberCode;
    /**
     * 会员姓名
     */
    private String payMemberName;

    /**
     * 更新年包标记
     */
    private Boolean expireDateFlag;

    //////////////////// 注册银行信息 ////////////////////
    /**
     * 银行选择
     */
    private Integer pkBank;
    /**
     * 开户支行
     */
    private String subBankName;
    /**
     * 银行卡号
     */
    private String cardNumber;
    /**
     * 开户姓名
     */
    private String accountName;
    /**
     * 证件号码
     */
    private String idCard;

}
