package com.haha.entity.dto;

import jakarta.validation.Valid;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.util.List;

/**
 * 补货操作DTO
 */
@Data
public class ReplenishDTO {

    /**
     * 设备SN号
     */
    @NotBlank(message = "设备ID不能为空")
    private String deviceId;

    /**
     * 补货商品列表
     */
    /**
     * 关联补货单ID（可选，补货完成后自动完成该补货单）
     */
    private Long orderId;

    @NotNull(message = "补货商品列表不能为空")
    @Valid
    private List<ReplenishItem> items;

    @Data
    public static class ReplenishItem {

        /**
         * 商品ID
         */
        @NotNull(message = "商品ID不能为空")
        private Long productId;

        /**
         * 商品编码
         */
        private String productCode;

        /**
         * 商品名称
         */
        private String productName;

        /**
         * 补货数量
         */
        @Min(value = 1, message = "补货数量至少为1")
        private Integer quantity;

        /**
         * 货架层号
         */
        private Integer shelfNum;

        /**
         * 货道位置
         */
        private String position;
    }
}
