package com.wms.entity.app.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.wms.entity.app.dto.extend.KanbanEntity;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class GoodsVo {
    /**
     * 物料编号
     */
    @JsonProperty("goodsId")
    private String goodsId;
    /**
     * 物料名称/描述
     */
    @JsonProperty("goodsName")
    private String goodsName;
    /**
     * 单位
     */
    @JsonProperty("goodsUnit")
    private String goodsUnit;
    /**
     * 物料分类
     */
    @JsonProperty("goodsType")
    private String goodsType;
    /**
     * 供应商分类
     */
    @JsonProperty("providerType")
    private String providerType;
    /**
     * 重量
     */
    @JsonProperty("weight")
    private BigDecimal weight;
    /**
     * 重量单位
     */
    @JsonProperty("weightUnit")
    private String weightUnit;
    /**
     * 每盒数量
     */
    @JsonProperty("quantityPerBox")
    private BigDecimal quantityPerBox;
    /**
     * 拆包方式
     */
    @JsonProperty("unpackingType")
    private String unpackingType;
    /**
     * 载具类型
     */
    @JsonProperty("vehicleType")
    private String vehicleType;
    /**
     * 载具类型描述
     */
    @JsonProperty("vehicleTypeDescription")
    private String vehicleTypeDescription;
    /**
     * 物料载具类型
     */
    @JsonProperty("goodsInVehicleType")
    private String goodsInVehicleType;
    /**
     * 补料方式
     * PULL：有看板
     * PUSH：无看板
     */
    @JsonProperty("feedingType")
    private String feedingType;
    /**
     * 每个看板包含物料数量
     */
    @JsonProperty("quantityPerKanban")
    private BigDecimal quantityPerKanban;
    /**
     * 看板的数量
     */
    @JsonProperty("kanbanNum")
    private BigDecimal kanbanNum;
    /**
     * 看板详细信息
     */
    @JsonProperty("kanbanList")
    private List<KanbanEntity> kanbanList;
    /**
     * 补货点
     */
    @JsonProperty("feedingValue")
    private BigDecimal feedingValue;
    /**
     * 备注1
     */
    @JsonProperty("remark1")
    private String remark1;
    /**
     * 备注2
     */
    @JsonProperty("remark2")
    private String remark2;
    /**
     * 备注3
     */
    @JsonProperty("remark3")
    private String remark3;
    /**
     * 数据来源
     */
    @JsonProperty("dataSource")
    private String dataSource;
    /**
     * 最后更新日期
     */
    @JsonProperty("lastUpdateTime")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastUpdateTime;
    /**
     * 最后更新用户
     */
    @JsonProperty("lastUpdateUser")
    private String lastUpdateUser;
    /**
     * 热度
     */
    @JsonProperty("heat")
    private String heat;
    /**
     * 卸货点
     */
    @JsonProperty("releasePoint")
    private String releasePoint;
}
