package com.hzs.bonus.detail.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.*;

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

/**
 * <p>
 * 会员信息-会员考核记录VO
 * </p>
 *
 * @author hzs
 * @since 2022-08-31
 */
@Data
public class CuMemberAssessVO  {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long pkId;

    /**
     * 考核月度主键
     */
    private Long pkAssess;

    /**
     * 会员编号
     */
    private Long pkMember;

    /**
     * 考核类型( 0=复购考核,1=分红考核) EAssessmentType
     */
    @Transaction(transactionKey = EnumsPrefixConstants.ASSESSMENT_TYPE)
    private Integer assessType;

    private String assessTypeVal;

    /**
     * 考核状态 (0=考核通过,1=免考通过,2=考核不通过,3=不考核) EAssessStatus
     */
    @Transaction(transactionKey = EnumsPrefixConstants.ASSESS_STATUS)
    private Integer assessStatus;
    private String assessStatusVal;

    /**
     * 考核年月份
     */
    private String settleMonth;
    /**
     * 订单编号
     */
    private String orderCode;




    /**
     * 交易时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date tradeTime;

    /**
     * 变化类型 (0=复购考核新增1=复购考核扣除，2=分红考核新增,3=分红考核扣除) EChangeType
     */
    @Transaction(transactionKey = EnumsPrefixConstants.CHANGE_TYPE)
    private Integer changeType;
    private String changeTypeVal;

    /**
     * 交易金额
     */
    private BigDecimal tradeAchieve;
    /**
     * 交易金额 (带符号)
     */
    private String tradeAchieveSign;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startDate;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTradeTime;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endDateTradeTime;

    /**
     * 国家
     */
    private Integer pkCountry;

    /**
     * 考核月剩余
     */
    private BigDecimal monthSurplus;
    /**
     * 订单分红考核积分（当月1号-当前时间）
     */
    private BigDecimal orderAssAchieve;
    /**
     * 订单复购考核积分（当月1号-当前时间）
     */
    private BigDecimal orderAchieve;


    /**
     * 交易时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date creationTime;
    /**
     * 订单类型 来源于枚举：所属专区 EOrderType
     */
    private Integer orderType;
    List<Integer> orderTypeList;







}
