package com.jeesharp.business.modules.pay.tlinx.dto;

import java.io.Serializable;

/**
 * TLinx2支付下单请求DTO
 * 
 * @author wangmeng
 * @since 2026-03-16
 */
public class TLinx2PayOrderRequest implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /**
     * 开发者交易流水号，同一门店内唯一，每次请求唯一
     */
    private String outNo;
    
    /**
     * 支付方式标签
     */
    private String pmtTag;
    
    /**
     * 支付方式名称
     */
    private String pmtName;
    
    /**
     * 订单名称
     */
    private String ordName;
    
    /**
     * 原始交易金额（以分为单位）
     */
    private Integer originalAmount;
    
    /**
     * 折扣金额（以分为单位）
     */
    private Integer discountAmount;
    
    /**
     * 抹零金额（以分为单位）
     */
    private Integer ignoreAmount;
    
    /**
     * 实际交易金额（以分为单位）
     */
    private Integer tradeAmount;
    
    /**
     * 交易账户
     */
    private String tradeAccount;
    
    /**
     * 交易流水号
     */
    private String tradeNo;
    
    /**
     * 收单机构原始交易数据
     */
    private String tradeResult;
    
    /**
     * 备注
     */
    private String remark;
    
    /**
     * 条码支付的授权码
     */
    private String authCode;
    
    /**
     * 附加数据
     */
    private String tag;
    
    /**
     * 公众号/服务窗支付跳转地址
     */
    private String jumpUrl;
    
    /**
     * 异步通知地址
     */
    private String notifyUrl;
    
    /**
     * 币种，默认CNY
     */
    private String currency = "CNY";
    
    // Getters and Setters
    
    public String getOutNo() {
        return outNo;
    }
    
    public void setOutNo(String outNo) {
        this.outNo = outNo;
    }
    
    public String getPmtTag() {
        return pmtTag;
    }
    
    public void setPmtTag(String pmtTag) {
        this.pmtTag = pmtTag;
    }
    
    public String getPmtName() {
        return pmtName;
    }
    
    public void setPmtName(String pmtName) {
        this.pmtName = pmtName;
    }
    
    public String getOrdName() {
        return ordName;
    }
    
    public void setOrdName(String ordName) {
        this.ordName = ordName;
    }
    
    public Integer getOriginalAmount() {
        return originalAmount;
    }
    
    public void setOriginalAmount(Integer originalAmount) {
        this.originalAmount = originalAmount;
    }
    
    public Integer getDiscountAmount() {
        return discountAmount;
    }
    
    public void setDiscountAmount(Integer discountAmount) {
        this.discountAmount = discountAmount;
    }
    
    public Integer getIgnoreAmount() {
        return ignoreAmount;
    }
    
    public void setIgnoreAmount(Integer ignoreAmount) {
        this.ignoreAmount = ignoreAmount;
    }
    
    public Integer getTradeAmount() {
        return tradeAmount;
    }
    
    public void setTradeAmount(Integer tradeAmount) {
        this.tradeAmount = tradeAmount;
    }
    
    public String getTradeAccount() {
        return tradeAccount;
    }
    
    public void setTradeAccount(String tradeAccount) {
        this.tradeAccount = tradeAccount;
    }
    
    public String getTradeNo() {
        return tradeNo;
    }
    
    public void setTradeNo(String tradeNo) {
        this.tradeNo = tradeNo;
    }
    
    public String getTradeResult() {
        return tradeResult;
    }
    
    public void setTradeResult(String tradeResult) {
        this.tradeResult = tradeResult;
    }
    
    public String getRemark() {
        return remark;
    }
    
    public void setRemark(String remark) {
        this.remark = remark;
    }
    
    public String getAuthCode() {
        return authCode;
    }
    
    public void setAuthCode(String authCode) {
        this.authCode = authCode;
    }
    
    public String getTag() {
        return tag;
    }
    
    public void setTag(String tag) {
        this.tag = tag;
    }
    
    public String getJumpUrl() {
        return jumpUrl;
    }
    
    public void setJumpUrl(String jumpUrl) {
        this.jumpUrl = jumpUrl;
    }
    
    public String getNotifyUrl() {
        return notifyUrl;
    }
    
    public void setNotifyUrl(String notifyUrl) {
        this.notifyUrl = notifyUrl;
    }
    
    public String getCurrency() {
        return currency;
    }
    
    public void setCurrency(String currency) {
        this.currency = currency;
    }
    
    @Override
    public String toString() {
        return "PuFaPayOrderRequest{" +
                "outNo='" + outNo + '\'' +
                ", pmtTag='" + pmtTag + '\'' +
                ", pmtName='" + pmtName + '\'' +
                ", ordName='" + ordName + '\'' +
                ", originalAmount=" + originalAmount +
                ", discountAmount=" + discountAmount +
                ", ignoreAmount=" + ignoreAmount +
                ", tradeAmount=" + tradeAmount +
                ", tradeAccount='" + tradeAccount + '\'' +
                ", tradeNo='" + tradeNo + '\'' +
                ", tradeResult='" + tradeResult + '\'' +
                ", remark='" + remark + '\'' +
                ", authCode='" + authCode + '\'' +
                ", tag='" + tag + '\'' +
                ", jumpUrl='" + jumpUrl + '\'' +
                ", notifyUrl='" + notifyUrl + '\'' +
                ", currency='" + currency + '\'' +
                '}';
    }
}