package cn.iocoder.yudao.module.system.dal.dataobject.houselocation;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.math.BigDecimal;

/**
 * 库位 DO
 *
 * @author 陈宾顺
 */
@TableName("ware_house_location")
@KeySequence("ware_house_location_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class WareHouseLocationDO extends BaseDO {

    /**
     * 主键ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /**
     * 线库id
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Long laneId;
    /**
     * 线库名称
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String laneName;
    /**
     * 库区id(自定义)
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Long areaId;
    /**
     * 库区名称
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String areaName;
    /**
     * 库位编号
     */
    private String locationNo;
    /**
     * 分组名称
     */
    private String groupName;
    /**
     * 弧度
     */
    private String locationYaw;
    /**
     * 物料信息
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String skuInfo;
    /**
     * 物料批次号
     */
    private String skuBatch;
    /**
     * 物料数量
     */
    private Long skuNumber;
    /**
     * 托盘消息
     */
    private String trayInfo;
    /**
     * 启用/禁用（0：禁用、1：启用）
     */
    private Integer locationEnable;
    /**
     * 锁定/正常（0：锁定、1：正常）
     */
    private Integer locationLock;
    /**
     * 状态（0：空闲、1：占用）
     */
    private Integer locationUseStatus;
    /**
     * 库位坐标x轴
     */
    private String locationX;
    /**
     * 库位坐标y轴
     */
    private String locationY;
    /**
     * 实际坐标x轴
     */
    private String actualLocationX;
    /**
     * 实际坐标y轴
     */
    private String actualLocationY;
    /**
     * 宽度
     */
    private BigDecimal locationWide;
    /**
     * 长度
     */
    private BigDecimal locationDeep;
    /**
     * 库位方向（1：单向、2：双向、3：三向、4：四向）
     */
    private Integer direction;
    /**
     * 进入方向（0：尾入、1：头入）
     */
    private Integer inDirection;
    /**
     * 离开方向（0：尾出、1：头出）
     */
    private Integer outDirection;
    /**
     * 高(库位上目前所放物品的高) --备用
     */
    private BigDecimal locationHeight;
    /**
     * 库位默认高度(现场有水泥高出地面的高度)--备用
     */
    private BigDecimal locationDefaultHeight;
    /**
     * 机车上报的高度/总高(如果两个箱子叠加，就是叠加后的总高度)--备用
     */
    private BigDecimal locationTotalHeight;
    /**
     * 机车上报的下一层箱子高度
     */
    private BigDecimal locationTrayHeight;
    /**
     * 层数
     */
    private Integer locationStorey;
    /**
     * 点位类型（0：库位、1：等待点、2：输送线取托盘点、3：出库放托盘点）
     */
    private Integer locationType;
    /**
     * 排序的位置,越大越优先堆放
     */
    private Long locationNumber;
    /**
     * 最后一次执行任务robot_task的id
     */
    private Long taskId;
    /**
     * ware_position_map的id
     */
    private Long mapId;
    /**
     * ware_position_map_item的id
     */
    private Long mapItemId;

    /**
     * 库位类型表的id
     */
    private Long locationTypeId;
}
