package com.jeesharp.business.modules.mall.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 管理端商城订单快递发货入参。
 *
 * @author jeesharp
 * @since 2026-06-06
 */
@Data
@Schema(description = "商城订单发货请求")
public class MallOrderShipDTO {

    @NotBlank(message = "订单ID不能为空")
    @Schema(description = "订单主键", requiredMode = Schema.RequiredMode.REQUIRED)
    private String orderId;

    @Schema(description = "物流公司主键（与 logisticsCompany 二选一，优先使用）")
    private String logisticsCompanyId;

    @Schema(description = "物流公司名称（未选 ID 时手填）")
    private String logisticsCompany;

    @NotBlank(message = "运单号不能为空")
    @Schema(description = "物流运单号", requiredMode = Schema.RequiredMode.REQUIRED)
    private String logisticsNo;

    @Schema(description = "发货说明/原因（写入订单操作日志）")
    private String shipReason;

    @Schema(description = "发货时间；不传则取当前时间")
    private LocalDateTime shipTime;
}
