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

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

import java.math.BigDecimal;

/**
 * 仓库点位地图连线 DO
 *
 * @author 芋道源码
 */
@TableName("ware_position_map_line")
@KeySequence("ware_position_map_line_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PositionMapLineDO extends BaseDO {

    /**
     * 主键ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /**
     * 地图id
     */
    private Long positionMapId;
    /**
     * 出发点id(点位子表id)
     */
    private Long startingPointId;
    /**
     * 结束点id(点位子表id)
     */
    private Long endPointId;
    /**
     * 出发点序号
     */
    private Integer startingSortNum;
    /**
     * 结束点序号
     */
    private Integer endPointSortNum;
    /**
     * 开始点位x轴
     */
    private String startPointX;
    /**
     * 开始点位y轴
     */
    private String startPointY;
    /**
     * 结束点位x轴
     */
    private String endPointX;
    /**
     * 结束点位y轴
     */
    private String endPointY;
    /**
     * 开始控制点x轴
     */
    private String beginControlX;
    /**
     * 开始控制点y轴
     */
    private String beginControlY;
    /**
     * 结束控制点x轴
     */
    private String endControlX;
    /**
     * 结束控制点y轴
     */
    private String endControlY;
    /**
     * 实际开始点位x轴
     */
    private String actualStartPointX;
    /**
     * 实际开始点位y轴
     */
    private String actualStartPointY;
    /**
     * 实际结束点位x轴
     */
    private String actualEndPointX;
    /**
     * 实际结束点位y轴
     */
    private String actualEndPointY;
    /**
     * 实际开始控制点x轴
     */
    private String actualBeginControlX;
    /**
     * 实际开始控制点y轴
     */
    private String actualBeginControlY;
    /**
     * 实际结束控制点x轴
     */
    private String actualEndControlX;
    /**
     * 实际结束控制点y轴
     */
    private String actualEndControlY;
    /**
     * 膨胀区域前
     */
    private BigDecimal expansionZoneFront;
    /**
     * 膨胀区域后
     */
    private BigDecimal expansionZoneAfter;
    /**
     * 膨胀区域左
     */
    private BigDecimal expansionZoneLeft;
    /**
     * 膨胀区域右
     */
    private BigDecimal expansionZoneRight;

    /**
     * 起点宽
     */
    private BigDecimal beginWidth;

    /**
     * 起点高
     */
    private BigDecimal beginHigh;

    /**
     * 终点宽
     */
    private BigDecimal endWidth;

    /**
     * 终点高
     */
    private BigDecimal endHigh;

    /**
     * 行走方法 0.直线 1.曲线
     */
    private Integer method;
    /**
     * 方向 1.单向 2.双向
     */
    private Integer direction;
    /**
     * 正向限速(m/s)
     */
    private BigDecimal forwardSpeedLimit;
    /**
     * 反向限速(m/s)
     */
    private BigDecimal reverseSpeedLimit;

    /**
     * 是否开启防撞 0否 1是
     */
    private Integer collisionAvoidanceFlag;
    /**
     * 车头朝向(0:正正 1:正反 2:反正 3:反反 4正随 5随正 6随反 7反随 8随随 如果是单向的话 0代表正 1代表反 2代表随意
     */
    private Integer toward;
}
