package com.hzs.report.member.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
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.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * 会员钱包
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CuMemberWalletVO {
    /**
     * 主键
     */
    private Long pkId;

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


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

    @JsonIgnore
    private Integer pkCountry;


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

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

    /**
     * 钱包类型
     */
    @Transaction(transactionKey = EnumsPrefixConstants.KEY_ACC)
    private Integer pkAccount;
    /**
     * 钱包类型 翻译
     */
    @Excel(name = "钱包类型")
    private String pkAccountVal;

    /**
     * 交易类型: (101: 注册订单,102: 升级订单,103: 复购订单,104: 圣宝云代注册,105: 圣宝云代升级,106: 圣宝云代复购,107: 嗨粉订单,108: 提货订单,109: 礼包订单,110: 消费订单,111: 兑换订单,200: 提现,201: 提现充正,300: 转账,400: 后台充值,401: 线上充值,500: 收益发放,600: 撤单返钱,601: 返还本金)
     */
    @Transaction(transactionKey = EnumsPrefixConstants.TRADE_TYPE)
    private Integer tradeType;

    @Excel(name = "交易类型")
    private String tradeTypeVal;


    /**
     * 交易金额
     */
    @Excel(name = "交易金额", scale = 2)
    @BigDecimalFormat()
    private BigDecimal tradeAmount;

    /**
     * 交易金额(本币)
     */
    @Excel(name = "交易金额($)", scale = 2)
    @BigDecimalFormat()
    private BigDecimal settleTradeAmount;

    /**
     * 交易余额
     */
    @Excel(name = "交易余额", scale = 2)
    @BigDecimalFormat()
    private BigDecimal tradeBalance;
    /**
     * 交易余额(本币)
     */
    @Excel(name = "交易余额($)", scale = 2)
    @BigDecimalFormat()
    private BigDecimal settleTradeBalance;

    @Excel(name = "交易备注")
    private String remarks;

    /**
     * 来源单号
     */
    @Excel(name = "单据编号")
    private String sourceCode;

    /**
     * 交易时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "交易日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date creationTime;

    /**
     * 树的类型（安置、推荐）
     */
    private Integer treeType;

    /**
     * 已选取的ID
     */
    private List<Long> pkIds;

    /**
     * 开始时间
     */
    private String startDate;
    /**
     * 结束时间
     */
    private String endDate;

    /**
     * 体系ID
     */
    private Long vertexId;
    /**
     * 团队ID
     */
    private Long teamId;

}
