package com.fs.tzBank.dto;

import lombok.Data;

import java.io.Serializable;

/**
 * 支付结果通知 DTO.
 *
 * <p>
 *  该 DTO 用于接收支付平台返回的支付结果通知。
 * </p>
 *
 * @author xdd
 * @version 1.0
 * @since 2025-02-27
 */
@Data
public class TzPaymentResultDTO implements Serializable {

    /**
     * 商户订单号.
     * <p>
     * 企业自己生成的订单号。
     * </p>
     */
    private String orderNo;

    /**
     * 支付平台订单号.
     * <p>
     * 由行方生成的订单号, 同支付申请接口返回 orderFlowNo 字段。
     * </p>
     */
    private String orderFlowNo;

    /**
     * 订单状态.
     * <p>
     * 70-交易失败，90-交易成功；其他状态不主动通知。
     * （10-初始状态，60-交易中；80-订单关闭）
     * </p>
     */
    private String status;

    /**
     * 实付金额.
     */
    private Double actualyAmt;

    /**
     * 成功金额.
     * <p>
     * 可选字段，只有在特定情况下返回。
     * </p>
     */
    private Double succTrxAmt;

    /**
     * 成功时间.
     * <p>
     * 可选字段，格式：yyyyMMddHHmmss。
     * </p>
     */
    private String succTime;

    /**
     * 支付方式.
     * <p>
     * 即该笔订单是用什么方式支付的，具体支付方式枚举可
     * 见门户个人中心-下载中心下《线上收银台支付方
     * 式下载》。
     * </p>
     */
    private String payType;

    /**
     * 白条支付订单号.
     * <p>
     * 当支付方式为白条支付时，会返回该字段；其含义为在
     * 支付平台在白条系统的订单号。
     * </p>
     */
    private String loanPayOrder;

    /**
     * 商户手续费.
     * <p>
     * 订单状态为成功时返回，也业务协议为准，现阶段都是 0。
     * </p>
     */
    private Double fee;

    /**
     * 渠道交易流水号.
     */
    private String chlTrxId;

    /**
     * 卡类型.
     * <p>
     * 0010 借记卡 0020 贷记卡 0050 其他（类似微信零钱、余
     * 额宝）。
     * </p>
     */
    private String cardType;
}
