package com.yida.data.common.core.entity.pay;

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

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 银联云闪付订单类
 * 当前暂时只针对一个子商户的概念
 *
 * @author ZYJ
 * @date 2022/6/15
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UnionPayOrder implements Serializable {

    private static final long serialVersionUID = -1580486861180880702L;

    @ApiModelProperty("银联云闪付支付类型")
    private Integer unionPayType;

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

    /**
     * 流水号生成规则：
     * 第一位：一位数前缀
     * 第2-10位：学校ID，缺少的以0在前补位
     * 第11-20位：商品编码code，缺少的以0在前补位，
     * 第21-28位：购买日期（年月日），
     * 第29-36位：8位随机数
     */
    @ApiModelProperty("流水号生成规则： 第一位：Z 第2-10位：学校ID，缺少的以0在前补位 第11-20位：商品编码code，缺少的以0在前补位， 第21-28位：购买日期（年月日）， 第29-36位：8位随机数")
    private String transactionNumber;

    @ApiModelProperty("自定义数据. 小于255字符")
    private String attachedData;

    @ApiModelProperty("订单描述")
    private String orderDesc;

    @ApiModelProperty("实际支付金额. 单位元")
    private BigDecimal payMoney;

    @ApiModelProperty("支付结果通知地址")
    private String notifyUrl;

    @ApiModelProperty("网页跳转地址")
    private String returnUrl;

    @ApiModelProperty("对应支付类型枚举")
    private UnionPayTypeEnum payTypeEnum;
}
