package com.yonge.cooleshow.portal.dto;

import com.yonge.toolset.payment.base.enums.PayChannelEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 下单支付请求
 *
 * @Author: liweifan
 * @Data: 2022/3/31 14:55
 */
@ApiModel(value = "OrderPayReq对象", description = "下单支付请求")
public class OrderPayReq {
    @NotBlank(message = "订单号不能为空")
    @ApiModelProperty(value = "订单号 ", required = true)
    private String orderNo;
    @NotNull(message = "支付渠道不能为空")
    @ApiModelProperty(value = "支付渠道:  alipay 支付宝扫码 ali_app 支付宝APP  wx_app 微信APP wx_lite 微信小程序支付", required = true)
    private PayChannelEnum payChannel;
    @ApiModelProperty(value = "微信用户openId（微信支付必传）")
    private String openId;
    @ApiModelProperty(value = "买家的支付宝用户 id（支付宝小程序支付必传）")
    private String buyerId;
    @ApiModelProperty(value = "用户说明 ")
    private String reason;

    @ApiModelProperty(value = "付款应用 STUDENT 学生端 TEACHER 老师端 （对应微信，支付宝平台的应用）",required = true)
    @NotBlank(message = "付款应用不能为空")
    private String paymentClient;

    private Long userId;
    private String ipAddress;

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public PayChannelEnum getPayChannel() {
        return payChannel;
    }

    public void setPayChannel(PayChannelEnum payChannel) {
        this.payChannel = payChannel;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getIpAddress() {
        return ipAddress;
    }

    public void setIpAddress(String ipAddress) {
        this.ipAddress = ipAddress;
    }

    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public String getBuyerId() {
        return buyerId;
    }

    public void setBuyerId(String buyerId) {
        this.buyerId = buyerId;
    }

    public String getPaymentClient() {
        return paymentClient;
    }

    public void setPaymentClient(String paymentClient) {
        this.paymentClient = paymentClient;
    }
}
