package com.xinelu.applet.vo.wechatpaymentinfo.dto;

import com.xinelu.common.custominterface.Insert;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @Description 微信支付参数接受实体类
 * @Author 纪寒
 * @Date 2022-10-18 15:12:51
 * @Version 1.0
 */
@Data
public class PaymentDTO implements Serializable {
    private static final long serialVersionUID = 4090244715734558969L;

    /**
     * 会员id
     */
    @NotNull(message = "会员id不能为空！", groups = {Insert.class})
    private Long patientId;

    /**
     * 微信用户openid
     */
    private String openid;

    /**
     * 订单编号
     */
    @NotBlank(message = "订单编号不能为空！", groups = {Insert.class})
    private String orderNo;

    /**
     * 支付类型，微信支付：WECHAT_PAY，支付宝支付：ALI_PAY
     */
    @NotBlank(message = "支付类型不能为空！", groups = {Insert.class})
    private String payType;

    /**
     * 支付渠道，手机App：MOBILE_APP，微信小程序：WECHAT_APPLET，支付宝小程序：ALI_PAY_APPLE
     */
    @NotBlank(message = "支付渠道不能为空！", groups = {Insert.class})
    private String orderChannel;

    /**
     * 购买来源，用于判断使用那个商户进行支付
     * 护理站：NURSE_STATION，商城：SHOPPING_MAL, 健康咨询：HEALTH_CONSULTATION，学习培训：TRAINING
     */
    @NotBlank(message = "购买来源不能为空！", groups = {Insert.class})
    private String buySource;

    /**
     * 支付金额
     */
    @NotNull(message = "支付金额不能为空！", groups = {Insert.class})
    private BigDecimal paymentPrice;

    /**
     * 护理员id
     */
    private Long nurseStationPersonId;
}
