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

import cn.iocoder.yudao.module.order.vo.orderItem.OrderItemCreateReqVO;
import cn.iocoder.yudao.module.order.vo.orderItem.OrderItemUpdateReqVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;

import javax.validation.Valid;
import javax.validation.constraints.*;

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

    @ApiModelProperty(value = "主键ID", required = true)
    @NotNull(message = "订单ID不能为空")
    private Long orderId;

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

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


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


    @ApiModelProperty(value = "发货客户ID")
//    @NotNull(message = "发货客户ID不能为空")
    private Long consignorId;

    @ApiModelProperty(value = "发货客户联系人ID")
//    @NotNull(message = "发货客户联系人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 consignorCountryCode;


    @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")
//    @NotNull(message = "收货客户id不能为空")
    private Long consigneeId;

    @ApiModelProperty(value = "收货客户联系人id")
//    @NotNull(message = "收货客户联系人id不能为空")
    private Long consigneeContactsId;

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

//
//    @ApiModelProperty(value = "地址", required = true)
//    private String address;
//
//    @ApiModelProperty(value = "优惠使用人")
//    private Long couponCustomerId;

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

    @ApiModelProperty(value = "收货人电话国家区号(兼容前端定义的字段)")
    private String consigneeCountryCode;

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

    @ApiModelProperty(value = "抄送人(id逗号拼接)")
    private String ccIds;


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

