package com.tmerclub.cloud.multishop.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import io.swagger.v3.oas.annotations.media.Schema;

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

/**
 * 导出商家余额
 * @author 菠萝凤梨
 */
public class ShopWalletLogExcelVO 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 = {};

    @ExcelProperty({"店铺结算明细表", "序号"})
    private String seq;

    @ExcelProperty({"店铺结算明细表", "店铺名称"})
    private String shopName;

    /**
     * @see com.tmerclub.cloud.multishop.constant.ShopWalletAmountType
     */
    @ExcelProperty({"店铺结算明细表", "金额类型"})
    private String amountType;

    @Schema(description = "商家收支类型 0支出 1收入")
    @ExcelProperty({"店铺结算明细表", "收支类型"})
    private String ioType;

    @ExcelProperty({"店铺结算明细表", "改变金额"})
    private String changeAmount;

    @ExcelProperty({"店铺结算明细表", "订单编号"})
    private String orderId;

    @ExcelProperty({"店铺结算明细表", "退款编号"})
    private String refundId;

    @ExcelProperty({"店铺结算明细表", "操作金额"})
    private String userAmount;

    @ExcelProperty({"店铺结算明细表", "平台补贴金额"})
    private String platformAmount;

    @ExcelProperty({"店铺结算明细表", "商家补贴金额"})
    private String shopReduceAmount;

    @ExcelProperty({"店铺结算明细表", "分销金额"})
    private String distributionAmount;

    @ExcelProperty({"店铺结算明细表", "平台佣金"})
    private String platformCommission;

    @ExcelProperty({"店铺结算明细表", "商家平台佣金"})
    private String shopPlatformCommission;

    @ExcelProperty({"店铺结算明细表", "资金变化原因"})
    private String reasonStr;

    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    @ExcelProperty({"店铺结算明细表", "创建时间"})
    private Date createTime;

    public String getSeq() {
        return seq;
    }

    public void setSeq(String seq) {
        this.seq = seq;
    }

    public String getShopName() {
        return shopName;
    }

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

    public String getAmountType() {
        return amountType;
    }

    public void setAmountType(String amountType) {
        this.amountType = amountType;
    }

    public String getIoType() {
        return ioType;
    }

    public void setIoType(String ioType) {
        this.ioType = ioType;
    }

    public String getChangeAmount() {
        return changeAmount;
    }

    public void setChangeAmount(String changeAmount) {
        this.changeAmount = changeAmount;
    }

    public String getOrderId() {
        return orderId;
    }

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

    public String getRefundId() {
        return refundId;
    }

    public void setRefundId(String refundId) {
        this.refundId = refundId;
    }

    public String getUserAmount() {
        return userAmount;
    }

    public void setUserAmount(String userAmount) {
        this.userAmount = userAmount;
    }

    public String getPlatformAmount() {
        return platformAmount;
    }

    public void setPlatformAmount(String platformAmount) {
        this.platformAmount = platformAmount;
    }

    public String getShopReduceAmount() {
        return shopReduceAmount;
    }

    public void setShopReduceAmount(String shopReduceAmount) {
        this.shopReduceAmount = shopReduceAmount;
    }

    public String getDistributionAmount() {
        return distributionAmount;
    }

    public void setDistributionAmount(String distributionAmount) {
        this.distributionAmount = distributionAmount;
    }

    public String getPlatformCommission() {
        return platformCommission;
    }

    public void setPlatformCommission(String platformCommission) {
        this.platformCommission = platformCommission;
    }

    public String getShopPlatformCommission() {
        return shopPlatformCommission;
    }

    public void setShopPlatformCommission(String shopPlatformCommission) {
        this.shopPlatformCommission = shopPlatformCommission;
    }

    public String getReasonStr() {
        return reasonStr;
    }

    public void setReasonStr(String reasonStr) {
        this.reasonStr = reasonStr;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Override
    public String toString() {
        return "ShopWalletLogExcelVO{" +
                "seq='" + seq + '\'' +
                ", shopName='" + shopName + '\'' +
                ", amountType=" + amountType +
                ", ioType=" + ioType +
                ", changeAmount=" + changeAmount +
                ", orderId=" + orderId +
                ", refundId=" + refundId +
                ", userAmount=" + userAmount +
                ", platformAmount=" + platformAmount +
                ", shopReduceAmount=" + shopReduceAmount +
                ", distributionAmount=" + distributionAmount +
                ", platformCommission=" + platformCommission +
                ", shopPlatformCommission=" + shopPlatformCommission +
                ", reasonStr='" + reasonStr + '\'' +
                ", createTime=" + createTime +
                '}';
    }
}
