package com.openhis.web.externalintegration.dto;

import org.hibernate.validator.constraints.Length;

import com.alibaba.fastjson2.annotation.JSONField;

import lombok.Data;

/**
 * 【BPC】主扫支付结果通知
 *
 * @author Thanking
 * @date 2025-10-16
 */
@Data
public class BpcPaymentScanNotifyDto {

    /**
     * 商户系统订单号：申码交易商户系统订单号
     */
    @Length(max = 64)
    @JSONField(name = "merTradeNo")
    private String merTradeNo;

    /**
     * 原交易订单号：银行订单号
     */
    @Length(max = 64)
    @JSONField(name = "orgSysTrace")
    private String orgSysTrace;

    /**
     * 银行交易日期
     */
    @JSONField(name = "bankDate")
    private String bankDate;

    /**
     * 银行交易时间
     */
    @JSONField(name = "bankTime")
    private String bankTime;

    /**
     * 原申码订单号
     */
    @Length(max = 64)
    @JSONField(name = "oldQrOrderNo")
    private String oldQrOrderNo;

    /**
     * 原商户号
     */
    @JSONField(name = "oldTermId")
    private String oldTermId;

    /**
     * 原支付方式
     */
    @JSONField(name = "oldPayType")
    private String oldPayType;

    /**
     * 原银行交易日期
     */
    @JSONField(name = "oldBankDate")
    private String oldBankDate;

    /**
     * 原银行交易时间
     */
    @JSONField(name = "oldBankTime")
    private String oldBankTime;

    /**
     * 原交易返回码
     */
    @JSONField(name = "oldRespCode")
    private String oldRespCode;

    /**
     * 原交易返回信息
     */
    @JSONField(name = "oldRespMsg")
    private String oldRespMsg;

    /**
     * 微信交易单号：仅OldPayType=WEIX 时此域有值
     */
    @Length(max = 64)
    @JSONField(name = "oldTradeId")
    private String oldTradeId;

    /**
     * 支付宝交易单号：仅OldPayType=ZFBA 时此域有值
     */
    @Length(max = 64)
    @JSONField(name = "oldTradeNo")
    private String oldTradeNo;

    /**
     * 响应码：00 表示成功，其它表示失败
     */
    @JSONField(name = "respCode")
    private String respCode;

    /**
     * 响应码解释信息
     */
    @JSONField(name = "respMsg")
    private String respMsg;

}
