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

import io.swagger.v3.oas.annotations.media.Schema;
import org.springframework.data.mongodb.core.mapping.Document;

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

/**
 * @author TRACK
 */
@Document("user_balance_log")
public class MongoBalanceFinanceDetailVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "交易时间")
    private Date transDate;

    @Schema(description = "订单号")
    private String orderId;

    @Schema(description = "下单时间")
    private Date placeTime;

    @Schema(description = "交易摘要")
    private String prodName;

    @Schema(description = "发生渠道")
    private String shopName;

    @Schema(description = "资金变更申请人")
    private String userName;

    @Schema(description = "业务类型 1.订单支付 2.订单退款 3.余额充值 4.购买会员")
    private Integer bizType;

    /**
     * @see com.tmerclub.cloud.common.constant.PayType
     */
    @Schema(description = "支付方式 -1.不限")
    private Integer payType;

    @Schema(description = "收支金额")
    private Long transAmount;

    @Schema(description = "支付单号")
    private Long payId;

    @Schema(description = "退款单号")
    private Long refundId;

    @Schema(description = "支付多单订单号")
    private String orderIds;

    @Schema(description = "支付交易单号")
    private String payIds;

    @Schema(description = "店铺id")
    private Long shopId;

    @Schema(description = "用户id")
    private Long userId;

    @Schema(description = "余额充值id")
    private Long rechargeId;

    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 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 Integer getPayType() {
        return payType;
    }

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

    public Long getTransAmount() {
        return transAmount;
    }

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

    public Long getPayId() {
        return payId;
    }

    public void setPayId(Long payId) {
        this.payId = payId;
    }

    public Long getRefundId() {
        return refundId;
    }

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

    public String getOrderIds() {
        return orderIds;
    }

    public void setOrderIds(String orderIds) {
        this.orderIds = orderIds;
    }

    public String getPayIds() {
        return payIds;
    }

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

    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;
    }

    public Long getRechargeId() {
        return rechargeId;
    }

    public void setRechargeId(Long rechargeId) {
        this.rechargeId = rechargeId;
    }

    @Override
    public String toString() {
        return "MongoBalanceFinanceDetailVO{" +
                "transDate=" + transDate +
                ", orderId='" + orderId + '\'' +
                ", placeTime=" + placeTime +
                ", prodName='" + prodName + '\'' +
                ", shopName='" + shopName + '\'' +
                ", userName='" + userName + '\'' +
                ", bizType=" + bizType +
                ", payType=" + payType +
                ", transAmount=" + transAmount +
                ", payId=" + payId +
                ", refundId=" + refundId +
                ", orderIds='" + orderIds + '\'' +
                ", payIds='" + payIds + '\'' +
                ", shopId=" + shopId +
                ", userId=" + userId +
                ", rechargeId=" + rechargeId +
                '}';
    }
}
