
package com.tmerclub.cloud.api.user.vo;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * 财务明细excel信息
 *
 * @author TRACK
 */
public class FinanceDetailExcelVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * excel 信息
     */
    public static final String EXCEL_NAME = "财务明细报表";
    /**
     * 哪一行开始导出
     */
    public static final int MERGE_ROW_INDEX = 2;
    /**
     * 需要合并的列数组
     */
    public static final int[] MERGE_COLUMN_INDEX = {};


    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @ExcelProperty({"财务明细报表", "交易时间"})
    private Date transDate;

    @ExcelProperty({"财务明细报表", "订单编号"})
    private String orderId;

    @ExcelProperty({"财务明细报表", "下单时间"})
    private Date placeTime;

    @ExcelProperty({"财务明细报表", "交易摘要"})
    private String prodName;

    @ExcelProperty({"财务明细报表", "发生渠道"})
    private String shopName;

    @ExcelProperty({"财务明细报表", "资金变更申请人"})
    private String userName;

    /**
     * com.tmerclub.cloud.order.constant.FinanceBizType
     */
    @ExcelProperty({"财务明细报表", "业务类型"})
    private String bizTypeStr;

    @ExcelProperty({"财务明细报表", "支付交易单号"})
    private String payIds;

    /**
     * @see com.tmerclub.cloud.common.constant.PayType
     */
    @ExcelIgnore
    private Integer payType;

    @ExcelProperty({"财务明细报表", "支付方式"})
    private String payTypeName;

    @ExcelIgnore
    private Long transAmount;

    @ExcelProperty({"财务明细报表", "收支金额"})
    private String amount;

    @ExcelIgnore
    private Long shopId;

    @ExcelIgnore
    private Long userId;

    @ExcelIgnore
    private Integer bizType;

    public Date getTransDate() {
        return transDate;
    }

    public void setTransDate(Date transDate) {
        this.transDate = transDate;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public Date getPlaceTime() {
        return placeTime;
    }

    public void setPlaceTime(Date placeTime) {
        this.placeTime = placeTime;
    }

    public String getProdName() {
        return prodName;
    }

    public void setProdName(String prodName) {
        this.prodName = prodName;
    }

    public String getBizTypeStr() {
        return bizTypeStr;
    }

    public void setBizTypeStr(String bizTypeStr) {
        this.bizTypeStr = bizTypeStr;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Integer getBizType() {
        return bizType;
    }

    public void setBizType(Integer bizType) {
        this.bizType = bizType;
    }

    public String getPayIds() {
        return payIds;
    }

    public void setPayIds(String payIds) {
        this.payIds = payIds;
    }

    public Integer getPayType() {
        return payType;
    }

    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    public String getPayTypeName() {
        return payTypeName;
    }

    public void setPayTypeName(String payTypeName) {
        this.payTypeName = payTypeName;
    }

    public Long getTransAmount() {
        return transAmount;
    }

    public void setTransAmount(Long transAmount) {
        this.transAmount = transAmount;
    }

    public String getAmount() {
        return amount;
    }

    public void setAmount(String amount) {
        this.amount = amount;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    @Override
    public String toString() {
        return "FinanceDetailExcelVO{" +
                "transDate=" + transDate +
                ", orderId='" + orderId + '\'' +
                ", placeTime=" + placeTime +
                ", prodName='" + prodName + '\'' +
                ", shopName='" + shopName + '\'' +
                ", userName='" + userName + '\'' +
                ", bizTypeStr='" + bizTypeStr + '\'' +
                ", payIds='" + payIds + '\'' +
                ", payType=" + payType +
                ", payTypeName='" + payTypeName + '\'' +
                ", transAmount=" + transAmount +
                ", amount='" + amount + '\'' +
                ", shopId=" + shopId +
                ", userId=" + userId +
                ", bizType=" + bizType +
                '}';
    }
}
