package com.liquidnet.service.goblin.dto.manage;

import com.liquidnet.service.dragon.doc.DragonPaySwaggerDoc;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;


@ApiModel(value = "GoblinOrderParam", description = "POST /goblin/pre 商城下单。微信小程序微信支付见 deviceFrom 与 openId 说明。")
@Data
public class GoblinOrderParam {

    @ApiModelProperty(required = false, value = "收货地址id[虚拟物品不需要]")
    private ArrayList<String> addressIds;
    @ApiModelProperty(value = "代理id")
    private String agentId;
    @ApiModelProperty(value = DragonPaySwaggerDoc.PAY_TYPE_VALUE, allowableValues = DragonPaySwaggerDoc.PAY_TYPE_ALLOWABLE, example = "wepay")
    @NotNull(message = "支付类型不能为空")
    private String payType;
    @ApiModelProperty(value = DragonPaySwaggerDoc.DEVICE_FROM_VALUE, allowableValues = DragonPaySwaggerDoc.DEVICE_FROM_ALLOWABLE, example = "applet")
    @NotNull(message = "支付来源不能为空")
    private String deviceFrom;
    @ApiModelProperty(value = DragonPaySwaggerDoc.OPEN_ID_VALUE)
    private String openId;
    @ApiModelProperty(value = "showUrl")
    private String showUrl;
    @ApiModelProperty(value = "returnUrl")
    private String returnUrl;
    @ApiModelProperty(value = "用户id")
    private String uid;
    @ApiModelProperty(value = "扫码枪code")
    private String authCode;
    @ApiModelProperty(value = "入场人地址vo")
    private AddressVo addressesVo;
    @ApiModelProperty(value = "商品相关参数集合")
    private List<GoblinOrderStoreParam> goblinOrderStoreParamList;
    @ApiModelProperty(value = "粉丝俱乐部来源标识，如DOUDOU之家；与 referrerUserId 同时传才打标")
    private String referrerApp;
    @ApiModelProperty(value = "粉丝俱乐部侧用户id")
    private String referrerUserId;

}
