package com.yn.bftl.thirdparty.modules.chinaums.dto.byx;

import com.yn.bftl.thirdparty.common.dto.BaseSecretDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "ByxChinaumsGuaranteePayParamsDTO", description = "银联消费担保支付参数DTO")
@Builder
public class ByxChinaumsGuaranteePayParamsDTO extends BaseSecretDTO {

    @ApiModelProperty(value = "商户订单号", notes = "客户端唯一标记该笔交易。当操作方式为普通支付且未下单直接进行支付时必填。")
    private String mctOrderNo;

    @ApiModelProperty(value = "担保支付订单号", notes = "由服务端系统生成的唯一单号。当操作方式为普通支付且先下单再支付，必填;。当操作方式为为补充支付，必填。只对原担保支付订单号进行补充支付。")
    private String guaranteedOrderNo;

    @ApiModelProperty(value = "操作方式", notes = "1：普通支付。" +
                                                "2：补充支付")
    private Integer oprType;

    @ApiModelProperty(value = "支付方式", notes = "00：电子账户余额支付")
    private String payType;

    @ApiModelProperty(value = "买家电子账户 ID")
    private String buyerWalletId;

    @ApiModelProperty(value = "平台电子账户 ID", notes = "平台可以是卖方。")
    private String platformWalletId;

    @ApiModelProperty(value = "卖家电子账户 ID")
    private String merWalletId;

    @ApiModelProperty(value = "商户号", notes = "交易商户号。")
    private String merNo;

    @ApiModelProperty(value = "商户名称")
    private String merName;

    @ApiModelProperty(value = "订单金额", notes = "单位（分）")
    private Long orderAmt;

    @ApiModelProperty(value = "商品摘要", notes = "商品的标题/交易标题/订单标题/订单关键字等。如：“餐饮支付”")
    private String subject;

    @ApiModelProperty(value = "订单支付有效时间", notes = "该笔订单允许的最晚付款时间，逾期将关闭交易。" +
            "取值范围：1m～15d。m-分钟，h-小时，d-天，1c-当" +
            "天（当天的情况下，无论交易何时创建，都在 0 点关闭）。" +
            "该参数数值不接受小数点， 如 1.5h，可转换为 90m。" +
            "若为空，则默认为 15d。")
    private String payTimeoutExpress;

    @ApiModelProperty(value = "订单结算有效天数", notes = "该笔订单允许的最晚结算日期，逾期将默认结算给平" +
                                                        "台。取值范围：天。" +
                                                        "若为空，则默认为 30 天。最大 180 天。")
    private Integer settTimeoutExpress;

    @ApiModelProperty(value = "外部索引号")
    private String externalIdxNo;

    @ApiModelProperty(value = "随机校验码", notes = "客户系统上送")
    private String randomValidCode;

    @ApiModelProperty(value = "前端回调 url", notes = "完成支付后前端跳转回商户系统的 url。如果使用我司返回的 h5 链接完成支付，则需填写。")
    private String frontCallbackUrl;

    @ApiModelProperty(value = "消息推送 url", notes = "担保支付完成后主动通知商户服务器里指定的http/https 路径。推送内容见消息推送文档。")
    private String notifyUrl;

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

}
