package com.wms.entity.table;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler;
import com.wms.entity.app.dto.extend.KanbanEntity;
import lombok.Data;

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

/**
 * 物料
 */
@Data
@TableName(value = "tbl_app_goods", autoResultMap = true)
public class Goods {
    /**
     * 物料编号
     */
    @TableId("goods_id")
    private String goodsId;
    /**
     * 物料名称/描述
     */
    @TableField("goods_name")
    private String goodsName;
    /**
     * 单位
     */
    @TableField("goods_unit")
    private String goodsUnit;
    /**
     * 物料分类
     */
    @TableField("goods_type")
    private String goodsType;
    /**
     * 供应商分类
     */
    @TableField("provider_type")
    private String providerType;
    /**
     * 重量
     */
    @TableField("weight")
    private BigDecimal weight;
    /**
     * 重量单位
     */
    @TableField("weight_unit")
    private String weightUnit;
    /**
     * 每盒数量
     */
    @TableField("quantity_per_box")
    private BigDecimal quantityPerBox;
    /**
     * 拆包方式
     */
    @TableField("unpacking_type")
    private String unpackingType;
    /**
     * 载具类型
     */
    @TableField("vehicle_type")
    private String vehicleType;
    /**
     * 载具类型描述
     */
    @TableField("vehicle_type_description")
    private String vehicleTypeDescription;
    /**
     * 物料载具类型
     */
    @TableField("goods_in_vehicle_type")
    private String goodsInVehicleType;
    /**
     * 补料方式
     * PULL：有看板
     * PUSH：无看板
     */
    @TableField("feeding_type")
    private String feedingType;
    /**
     * 每个看板包含物料数量
     */
    @TableField("quantity_per_kanban")
    private BigDecimal quantityPerKanban;
    /**
     * 看板的数量
     */
    @TableField("kanban_num")
    private BigDecimal kanbanNum;
    /**
     * 看板详细信息
     */
    @TableField(value = "kanban_list", typeHandler = Fastjson2TypeHandler.class)
    private List<KanbanEntity> kanbanList;
    /**
     * 补货点
     */
    @TableField("feeding_value")
    private BigDecimal feedingValue;
    /**
     * 备注1
     */
    @TableField("remark1")
    private String remark1;
    /**
     * 备注2
     */
    @TableField("remark2")
    private String remark2;
    /**
     * 备注3
     */
    @TableField("remark3")
    private String remark3;
    /**
     * 数据来源
     */
    @TableField("data_source")
    private String dataSource;
    /**
     * 最后更新日期
     */
    @TableField("last_update_time")
    private LocalDateTime lastUpdateTime;
    /**
     * 最后更新用户
     */
    @TableField("last_update_user")
    private String lastUpdateUser;
    /**
     * 热度
     */
    @TableField("heat")
    private String heat;
    /**
     * 卸货点
     */
    @TableField("release_point")
    private String releasePoint;
    /**
     * 盘点管理
     * YES
     * NO
     */
    @TableField("need_inventory")
    private String needInventory;
    /**
     * SLED管理
     * YES
     * NO
     */
    @TableField("have_sled")
    private String haveSled;
    /**
     * SLED天数
     */
    @TableField("sled_days")
    private Integer SledDays;
}
