package cn.iocoder.yudao.module.order.vo.order;

import cn.iocoder.yudao.module.order.vo.orderItem.OrderItemCreateReqVO;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;

import javax.validation.Valid;

@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel("管理后台 - 订单创建 Request VO")
public class OrderCreateReqVO extends OrderBaseVO {

    @ApiModelProperty(value = "始发地id")
    private Long departureId;

    @ApiModelProperty(value = "目的地id")
    private Long objectiveId;

    @ApiModelProperty(value = "订单商品项列表")
    @Valid
    private List<OrderItemCreateReqVO> orderItemVOList;

    @ApiModelProperty(value = "发货客户ID")
    private Long consignorId;

    @ApiModelProperty(value = "发货客户联系人ID")
    private Long consignorContactsId;

    @ApiModelProperty(value = "发货人姓名")
    private String consignorName;

    @ApiModelProperty(value = "发货人姓名(英文)")
    private String consignorNameEn;

    @ApiModelProperty(value = "发货人公司")
    private String consignorCompany;

    @ApiModelProperty(value = "发货人公司(英文)")
    private String consignorCompanyEn;

    @ApiModelProperty(value = "发货人邮箱")
    private String consignorEmail;

    @ApiModelProperty(value = "发货客户电话")
    private String consignorPhone;

    @ApiModelProperty(value = "收货人姓名")
    private String consigneeName;

    @ApiModelProperty(value = "收货人姓名(英文)")
    private String consigneeNameEn;

    @ApiModelProperty(value = "收货人公司")
    private String consigneeCompany;

    @ApiModelProperty(value = "收货人公司(英文)")
    private String consigneeCompanyEn;

    @ApiModelProperty(value = "收货人邮箱")
    private String consigneeEmail;

    @ApiModelProperty(value = "收货客户电话")
    private String consigneePhone;

    @ApiModelProperty(value = "收货客户id")
    private Long consigneeId;

    @ApiModelProperty(value = "收货客户联系人id")
    private Long consigneeContactsId;

    @ApiModelProperty(value = "国家")
    private Long country;

    @ApiModelProperty(value = "省")
    private Long province;

    @ApiModelProperty(value = "市")
    private Long city;

    @ApiModelProperty(value = "收货地址")
    private String consigneeAddress;

    @ApiModelProperty(value = "自定义付款人清单(name 详见字典 自定义付款人(custom_drawee), value 1 发货人 2 收货人)")
    private List<CustomDraweeVO> customDraweeVOList;

    @ApiModelProperty(value = "收获方式：1 自提 2 送货上门 ")
    private Integer harvestMethod;
    
    @ApiModelProperty(value = "优惠使用人")
    private Long couponCustomerId;

    @ApiModelProperty(value = "国家简称")
    private String countryAbbreviation;

    @ApiModelProperty(value = "收货人电话国家区号")
    private String countryCode;

    @ApiModelProperty(value = "发货人电话国家区号")
    private String consignorCountryCode;

    @ApiModelProperty(value = "关联报价单id")
    private Long offerId;
}
