
package com.tmerclub.cloud.api.delivery.dto;

import com.tmerclub.cloud.common.order.vo.SendNotifyBO;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 订单快递信息DTO
 *
 * @author tmerclub
 * @date 2020-12-07 15:10:00
 */
@Data
public class DeliveryOrderDTO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "deliveryOrderId")
    private Long deliveryOrderId;

    @NotNull(message = "订单号不能为空")
    @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long orderId;

    @Schema(description = "订单地址id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long orderAddrId;

    @Schema(description = "快递公司")
    private Long deliveryCompanyId;

    @Schema(description = "物流单号")
    private String deliveryNo;

    @NotNull(message = "发货方式不能为空")
    @Schema(description = "发货方式", requiredMode = Schema.RequiredMode.REQUIRED)
    private Integer deliveryType;

    @Schema(description = "用户id")
    private Long userId;

    @Schema(description = "收件人")
    private String consignee;

    @Schema(description = "收件人手机号")
    private String mobile;

    @Schema(description = "物流订单项")
    private List<DeliveryOrderItemDTO> selectOrderItems;

    @Schema(description = "网点id")
    private Long outletConfigId;

    @Schema(description = "打印机id")
    private Long printerId;

    @Schema(description = "快递公司类型")
    private Integer deliveryCompanyType;

    @Schema(description = "创建时间")
    private Date createTime;

    @Schema(description = "更新时间")
    private Date updateTime;

    @Schema(description = "消息内容")
    private SendNotifyBO sendNotifyBO;


}
