package com.hys.app.model.erp.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.hys.app.model.erp.dos.GoodsSnDO;
import com.hys.app.model.erp.vo.GoodsVO;
import com.hys.app.model.erp.vo.ProductVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * 库存盘点单产品实体DTO
 *
 * @author dmy
 * 2023-12-05
 */
@Data
public class StockInventoryProductDTO implements Serializable {

    private static final long serialVersionUID = -6285460490304810323L;


    private Long id;



    @ApiModelProperty(name = "goods_id", value = "SKUID", required = true)
    @NotNull(message = "SKUID不能为空")
    private Long productId;

    /**
     * 盘点数量
     */
    @ApiModelProperty(name = "inventory_num", value = "盘点数量", required = true)
    @NotNull(message = "盘点数量不能为空")
    private Integer inventoryNum;

    @ApiModelProperty(name = "sn_code_list", value = "货物信息，最大数量50")
    @TableField(exist = false)
    private List<GoodsSnDO> snCodeList;

    /**
     * 差异数量
     */
    @ApiModelProperty(name = "diff_num", value = "差异数量", required = true)
    @NotNull(message = "差异数量不能为空")
    private Integer diffNum;

    private GoodsVO goodsVO;

    private ProductVO productVO;

    @ApiModelProperty(name = "usable_stock", value = "可用库存")
    private Integer usableStock;

    @ApiModelProperty(name = "actual_stock", value = "实际库存")
    private Integer actualStock;

    @ApiModelProperty(name = "product_stock_id", value = "product_stock_id不能为空")
    private Long productStockId;
}
