package com.cool.store.dto.wallet;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * @Author suzhuhong
 * @Date 2025/11/19 11:14
 * @Version 1.0
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class TradeRecordDTO implements Serializable {

    @ApiModelProperty(value = "业务系统付款单号(如 CRM 单号)", required = true)
    private String reqNo;

    @ApiModelProperty(value = "交易（营帐通）", required = true)
    private Long tradeId;

    @ApiModelProperty(value = "交易流水号（扫呗）", required = true)
    private String outTradeNo;

    @ApiModelProperty(value = "费用科目", required = true)
    private Integer feeItemId;

    @ApiModelProperty(value = "费用科目名称", required = true)
    private String feeItemName;

    @ApiModelProperty(value = "转出方门店编号")
    private String outStoreCode;

    @ApiModelProperty(value = "转入方门店编号")
    private String inStoreCode;

    @ApiModelProperty(value = "转出方门店名称")
    private String outStoreName;

    @ApiModelProperty(value = "转入方门店名称")
    private String inStoreName;

    @ApiModelProperty(value = "转出方账户编号")
    private String outAccountNo;

    @ApiModelProperty(value = "转入方账户编号")
    private String inAccountNo;

    @ApiModelProperty(value = "转出方账户名称")
    private String outAccountName;

    @ApiModelProperty(value = "转入方账户名称")
    private String inAccountName;

    @ApiModelProperty(value = "提现银行卡号")
    private String withdrawalBankCardNo;

    @ApiModelProperty(value = "提现银行卡户名")
    private String withdrawalBankCardName;

    @ApiModelProperty(value = "金额(元)", required = true)
    private String amount;

    @ApiModelProperty(value = "交易状态1.成功 2.失败 3.处理中 4.已退款", required = true)
    private Integer tradeStatus;

    @ApiModelProperty(value = "1.转账2.提现 交易类型", required = true)
    private Integer tradeType;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "错误原因")
    private String errMsg;

    @ApiModelProperty(value = "交易发起时间YYYY-MM-DD HH:MM:SS", required = true)
    private String createTime;
}
