package com.yida.data.device.vo.consume;

import com.yida.data.common.core.enums.PayWay;
import com.yida.data.common.core.enums.UnionPayTypeEnum;
import com.yida.data.common.core.enums.WxPayTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * 生成消费订单返回信息
 *
 * @author ZYJ
 * @date 2023/3/22
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "ConsumePayInfoVO", description = "生成消费订单返回信息")
public class ConsumePayInfoVO implements Serializable {

    private static final long serialVersionUID = 6829651635967940690L;

    @ApiModelProperty("错误状态码. 仅在接口异常时返回")
    private Integer errorCode;

    @ApiModelProperty("错误信息. 仅在接口异常时返回")
    private String errorMessage;

    @ApiModelProperty("订单号")
    private String orderCode;

    @ApiModelProperty("微信时间戳")
    private String wxTimestamp;

    @ApiModelProperty("微信随机字符串")
    private String wxNonceStr;

    @ApiModelProperty("微信商户号")
    private String wxAppId;

    @ApiModelProperty("微信package")
    private String wxPackage;

    @ApiModelProperty("微信签名后串")
    private String wxSign;

    @ApiModelProperty("是否需要跳转支付")
    private Boolean needToPay;

    /**
     * 支付方式
     * {@link PayWay}
     */
    @ApiModelProperty("支付方式")
    private String payWay;

    /**
     * 支付类型
     * 银联云闪付: {@link UnionPayTypeEnum}
     * 微信类型: {@link WxPayTypeEnum}
     */
    @ApiModelProperty("具体支付子类型")
    private Integer payType;

    @ApiModelProperty("支付域名")
    private String payDomain;

    @ApiModelProperty("支付地址")
    private String payUrl;
}
