package com.hzs.report.member.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.BigDecimalFormat;
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.Date;

/**
 * 会员补配置查询返回VO
 */
@Data
public class MemberPerkQueryVO {

    /**
     * 补贴配置ID
     */
    private Long pkId;

    /**
     * 会员ID
     */
    private Long pkMember;

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

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

    /**
     * 体系名称
     */
    @Excel(name = "体系名称")
    private String vertexName;

    /**
     * 团队名称
     */
    @Excel(name = "团队名称")
    private String teamName;

    /**
     * 是否考核金额（0=是，1=否）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.YES_NO)
    private Integer checkAmount;
    /**
     * 是否考核金额显示
     */
    @Excel(name = "是否考核金额")
    private String checkAmountVal;

    /**
     * 是否考核业绩（0=是，1=否）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.YES_NO)
    private Integer checkAchieve;
    /**
     * 是否考核业绩显示
     */
    @Excel(name = "是否考核业绩")
    private String checkAchieveVal;

    /**
     * 考核类型（1=全部，2=首购，3=复购）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.ACHIEVEMENT_TYPE)
    private Integer checkType;
    /**
     * 考核类型显示
     */
    @Excel(name = "考核类型")
    private String checkTypeVal;

    /**
     * 是否扣除政策币（0=是，1=否）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.YES_NO)
    private Integer deductionPolicy;
    /**
     * 是否扣除政策币显示
     */
    @Excel(name = "是否扣除政策币")
    private String deductionPolicyVal;

    /**
     * 是否扣除复购券（0=是，1=否）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.YES_NO)
    private Integer deductionRepurchase;
    /**
     * 是否扣除复购券显示
     */
    @Excel(name = "是否扣除复购券")
    private String deductionRepurchaseVal;

    /**
     * 是否去重（0=是，1=否）
     */
    @Transaction(transactionKey = EnumsPrefixConstants.YES_NO)
    private Integer deduplication;
    /**
     * 是否去重显示
     */
    @Excel(name = "是否去重")
    private String deduplicationVal;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /**
     * 实际金额
     */
    @BigDecimalFormat
    @Excel(name = "实际金额")
    private BigDecimal realAmount;

    /**
     * 实际业绩
     */
    @BigDecimalFormat
    @Excel(name = "实际业绩")
    private BigDecimal realAchieve;

    /**
     * 去重金额
     */
    @BigDecimalFormat
    @Excel(name = "去重金额")
    private BigDecimal distinctAmount;

    /**
     * 去重业绩
     */
    @BigDecimalFormat
    @Excel(name = "去重业绩")
    private BigDecimal distinctAchieve;

    /**
     * 使用政策币
     */
    @BigDecimalFormat
    @Excel(name = "使用政策币")
    private BigDecimal usedPolicy;

    /**
     * 使用复购券
     */
    @BigDecimalFormat
    @Excel(name = "使用复购券")
    private BigDecimal usedRepurchase;

    /**
     * 最终金额
     */
    @BigDecimalFormat
    @Excel(name = "最终金额")
    private BigDecimal finalAmount;

    /**
     * 最终业绩
     */
    @BigDecimalFormat
    @Excel(name = "最终业绩")
    private BigDecimal finalAchieve;

    /**
     * 状态（1=未开始、2=进行中、3=未反补、4=已反补）
     */
    private Integer status;
    /**
     * 状态显示
     */
    @Excel(name = "状态")
    private String statusVal;

}
