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

import com.yn.bftl.thirdparty.modules.chinaums.vo.base.ByxBaseVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.ArrayList;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "ByxChinaumsGuaranteePayVO", description = "担保下单VO")
public class ByxChinaumsGuaranteePayVO extends ByxBaseVO {

    @ApiModelProperty(value = "商户订单号", notes = "查询成功则存在。")
    private String mctOrderNo;

    @ApiModelProperty(value = "担保支付订单号", notes = "银联返回的支付订单号")
    private String guaranteedOrderNo;

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

    @ApiModelProperty(value = "平台电子账户 ID")
    private String platformWalletId;

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

    @ApiModelProperty(value = "商品摘要")
    private String subject;

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

    @ApiModelProperty(value = "补充支付金额", notes = "补充支付金额（单位：分。最近一次补充支付金额）")
    private Long latestSupPayAmt;

    @ApiModelProperty(value = "实付金额", notes = "单位（分）")
    private Long actPayAmt;

    @ApiModelProperty(value = "已结算金额", notes = "单位（分）")
    private Long settledAmt;

    @ApiModelProperty(value = "结算中金额", notes = "单位（分）")
    private Long settlingAmt;

    @ApiModelProperty(value = "待结算金额", notes = "单位（分）")
    private Long toSettleAmt;

    @ApiModelProperty(value = "已退款金额", notes = "单位（分）（分账前资金退回）")
    private Long refundedAmt;

    @ApiModelProperty(value = "退款中金额", notes = "单位（分）")
    private Long refundingAmt;

    @ApiModelProperty(value = "分账退款金额", notes = "单位（分）（分账后资金退回）")
    private Long refundedGoodsAmt;

    @ApiModelProperty(value = "分账退款中金额", notes = "单位（分）")
    private Long refundingGoodsAmt;

    @ApiModelProperty(value = "是否完成", notes = "Y：是（完成后不允许再调用支付交易确认结算接口） N：否")
    private String isFinished;

    @ApiModelProperty(value = "是否完成", notes = "00：未支付" +
                                                "01：支付处理中" +
                                                "02：待结算" +
                                                "03：支付失败" +
                                                "04：长时间未支付置为交易失败" +
                                                "05：部分结算" +
                                                "06：订单完成" +
                                                "07：订单撤销(全额退款)" +
                                                "08：订单已完成且部分退款")
    private String orderStatus;


    @ApiModelProperty(value = "订单支付失效时间", notes = "yyyy-mm-dd hh:mm:ss")
    private String payInvalidTime;

    @ApiModelProperty(value = "订单结算失效日期", notes = "yyyyMMdd")
    private String settInvalidDate;

    @ApiModelProperty(value = "支付明细列表")
    private List<ByxChinaumsGuaranteePayDetailVO> payList;

    @ApiModelProperty(value = "结算单信息列表")
    private List<ByxChinaumsGuaranteePayInfoVO> settList;

}
