package com.hzs.bonus.bonus.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.hzs.common.core.annotation.Transaction;
import com.hzs.common.core.constant.EnumsPrefixConstants;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * @Description: 返回会员端查询奖金明细vo
 * @Author: sui q
 * @Time: 2022/12/20 9:56
 * @Classname: MemberBonusDetailVO
 * @PackageName: com.hzs.member.bonus.vo
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class MemberBonusDetailVO implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 订单主键
     */
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private Long pkOrder;

    /**
     * 结算日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date settleDate;

    /**
     * 订单编号
     */
    private String orderCode;

    /**
     * 订单类型 来源于专区设置
     */
    @Transaction(transactionKey = EnumsPrefixConstants.ORDER_TYPE)
    @JsonIgnore
    private Integer orderType;

    private String orderTypeVal;

    /**
     * 来源会员编号
     */
    private String sourceMemberCode;

    /**
     * 来源会员姓名
     */
    private String sourceMemberName;


    /**
     * 订单金额
     */
    private BigDecimal orderAmount;

    /**
     * 订单业绩
     */
    private BigDecimal orderAchieve;

    /**
     * 计算业绩
     */
    private BigDecimal calAchieve;

    /**
     * 实际收益
     */
    private BigDecimal realIncome;

    /**
     * 收益类型
     */
    @JsonIgnore
    private Integer pkBonusItems;

    /**
     * 收益类型
     */
    private String bonusName;

    /**
     * 轮
     */
    private Integer round = 0;

    /**
     * 次
     */
    private Integer second = 0;

    /**
     * 当前碰次
     */
    private Integer currentTouch;

    /**
     * 拓展碰次
     */
    private Integer expandTouch;

    /**
     * 当前代数
     */
    private Integer currentGeneration;

    /**
     * 辅导代数
     */
    private Integer coachGeneration;

    /**
     * 来源国家
     */
    private Integer pkSourceCountry;

    /**
     * 汇率
     */
    private BigDecimal outExchangeRate;

    /**
     * 服务编号
     */
    private String serviceCode;
    /**
     * 所属体系
     */
    private Long pkVertex;
    /**
     * 会员昵称
     */
    private String nickName;

}
