package com.jeequan.jeepay.pay.ctrl.channel.alipay.model.request;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;

/*
* 支付宝如意lite 支付宝请求服务商参数对象
*
* @author zx
* 
* @date 2021/6/8 17:33
*/
@Data
public class AlipaySpiPayOrderRequest {

    /** 商户订单号 **/
    @JSONField(name = "merchant_order_no")
    private String mchOrderNo;

    /** 支付金额， 单位：元 **/
    @JSONField(name = "total_amount")
    private String total_amount;

    /** 支付金额， 单位：分，由total_amount计算而来 **/
    private Long amount;

    /** 货币代码 **/
    @JSONField(name = "shop_id")
    private String shopId;

    /** 客户端IP地址 **/
    private String clientIp;

    /** 商品标题 **/
    @NotBlank(message="商品标题不能为空")
    private String subject;

    /** 商品描述信息 **/
    @NotBlank(message="商品描述信息不能为空")
    private String body;

    /** 商户的门店ID **/
    private String storeId;

    /** 设备信息 **/
    private String deviceInfo;

    /** 商户的码牌ID **/
    private Long qrcId;

    /** 异步通知地址 **/
    private String notifyUrl;

    /** 跳转通知地址 **/
    private String returnUrl;

    /** 卖家备注 **/
    private String sellerRemark;

    /** 买家备注 **/
    private String buyerRemark;

    /** 订单失效时间, 单位：秒 **/
    private Integer expiredTime;

    /** 终端编号（商户自行录入的 trmNo 字段 ） **/
    private String mchTrmNo;

    /** 特定渠道发起额外参数 **/
    private String channelExtra;

    /** 商户扩展参数 **/
    private String extParam;

    /** 分账模式： 0-该笔订单不允许分账, 1-支付成功按配置自动完成分账, 2-商户手动分账(解冻商户金额) **/
    @Range(min = 0, max = 2, message = "分账模式设置值有误")
    private Byte divisionMode;

    /** 渠道特殊业务数据 **/
    private String channelBizData;


    @Data
    public static class DeviceInfo {

        /** 设备类型：qr_code-码牌，scan_pos-扫码POS，auto_pos-智能POS，other-其他 **/
        private String deviceType;

        /** 设备号 **/
        private String deviceNo;

        /** 设备厂商 （智能POS厂商即为 ifCode，扫码POS仅商户系统调用，已通过cahnnelBizData传值） **/
        private String provider;

    }

}
