package com.hzs.member.empty.dto;

import com.hzs.common.core.annotation.Excel;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.Data;

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

/**
 * @Description: 空单注册明细DTO
 * @Author: jiang chao
 * @Time: 2023/6/16 17:52
 * @Classname: CuMemberEmptyDetailVO
 * @PackageName: com.hzs.member.empty.vo
 */
@Data
public class MemberEmptyDetailDTO {

    /**
     * 批次明细ID
     */
    private Long pkId;

    /**
     * 空单批次ID
     */
    private Long pkMemberEmpty;

    /**
     * 会员编号
     */
    @Excel(name = "会员编号")
    private String memberCode;

    /**
     * 会员名称
     */
    @Excel(name = "会员姓名")
    private String memberName;

    /**
     * 联系方式
     */
    @Excel(name = "联系方式")
    private String phone;

    /**
     * 推荐编号
     */
    @Excel(name = "推荐编号")
    private String parentCode;

    /**
     * 安置编号
     */
    @Excel(name = "安置编号")
    private String placeParentCode;

    /**
     * 安置部门
     */
    @Transaction(transactionKey = EnumsPrefixConstants.PLACE_DEPT)
    private Integer placeDept;
    /**
     * 安置部门显示
     */
    @Excel(name = "安置部门")
    private String placeDeptVal;

    /**
     * 结算国家
     */
    private Integer pkSettleCountry;
    /**
     * 结算国家显示
     */
    @Excel(name = "结算国家")
    private String pkSettleCountryVal;

    /**
     * 自然国家
     */
    private Integer pkCountry;
    /**
     * 自然国家显示
     */
    @Excel(name = "自然国家")
    private String pkCountryVal;

    /**
     * 注册类型（1=实单注册，2=空单注册）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.ORDER_SOURCE)
    private Integer orderSource;
    /**
     * 注册类型显示
     */
    @Excel(name = "注册类型")
    private String orderSourceVal;

    /**
     * 注册等级
     */
    private Integer pkRegisterGrade;
    /**
     * 注册等级显示
     */
    @Excel(name = "注册等级")
    private String pkRegisterGradeVal;

    /**
     * 注册业绩
     */
    @Excel(name = "注册业绩($)")
    private BigDecimal registerAchieve;

    /**
     * 订单类型
     */
    @Transaction(transactionKey = EnumsPrefixConstants.ORDER_TYPE)
    private Integer orderType;
    /**
     * 订单类型显示
     */
    @Excel(name = "订单类型")
    private String orderTypeVal;

    /**
     * 真实奖衔
     */
    private Integer pkAwards;
    /**
     * 真实奖衔显示
     */
    @Excel(name = "真实奖衔")
    private String pkAwardsVal;

    /**
     * 回填金额
     */
    @Excel(name = "回填金额")
    private BigDecimal backAmount;

    /**
     * 点位状态（0=正常，1=异常）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.POINT_STATUS)
    private Integer pointStatus;
    /**
     * 点位状态显示
     */
    @Excel(name = "点位状态")
    private String pointStatusVal;

    /**
     * 是否结算（0=是，1=否）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.DEALER_YES_NO)
    private Integer settlementFlag;
    /**
     * 是否结算显示
     */
    @Excel(name = "是否结算")
    private String settlementFlagVal;

    /**
     * 结算业绩
     */
    @Excel(name = "结算业绩")
    private BigDecimal settlementAchieve;

    /**
     * 上传业绩
     */
    @Excel(name = "上传业绩")
    private BigDecimal transferAchieve;

    /**
     * 选购产品（0=是，1=否）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.YES_NO)
    private Integer productFlag;
    /**
     * 选购产品显示
     */
    @Excel(name = "选购产品")
    private String productFlagVal;

    /**
     * 产品拼装（导出使用）
     */
    @Excel(name = "产品信息")
    private String productStr;

    /**
     * 收货人
     */
    @Excel(name = "收货人")
    private String recName;

    /**
     * 联系方式
     */
    @Excel(name = "联系方式")
    private String recPhone;

    /**
     * 省
     */
    private Integer recProvince;
    /**
     * 省
     */
    @Excel(name = "省")
    private String recProvinceVal;

    /**
     * 市
     */
    private Integer recCity;
    /**
     * 市
     */
    @Excel(name = "市")
    private String recCityVal;

    /**
     * 县
     */
    private Integer recCounty;
    /**
     * 县
     */
    @Excel(name = "县")
    private String recCountyVal;

    /**
     * 详细地址
     */
    @Excel(name = "详细地址")
    private String recAddress;

    /**
     * 自动续约标记（0=是，1=否）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.YES_NO)
    private Integer autoFlag;

    /**
     * 自动续约显示
     */
    @Excel(name = "自动续约")
    private String autoFlagVal;

    /**
     * 内容摘要
     */
    @Excel(name = "内容摘要")
    private String contentAbstract;

    /**
     * 内容摘要返回特别处理，如果为null返回""，简于后续拼装处理
     *
     * @return
     */
    public String getContentAbstract() {
        return null == contentAbstract ? "" : contentAbstract;
    }

    /**
     * 生成备注
     */
    @Excel(name = "生成备注")
    private String remark;

    /**
     * 产品列表
     */
    private List<MemberEmptyProductDTO> productList;

}
