package cn.iocoder.yudao.module.system.controller.admin.positionmap.vo;

import cn.iocoder.yudao.framework.common.pojo.PageParam;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

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

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 仓库点位地图连线分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PositionMapLinePageReqVO extends PageParam {

    @Schema(description = "地图id", example = "20863")
    private Long positionMapId;

    @Schema(description = "出发点id(点位子表id)", example = "20863")
    private Long startingPointId;

    @Schema(description = "结束点id(点位子表id)", example = "15890")
    private Long endPointId;

    @Schema(description = "开始点位x轴", example = "15890")
    private String startPointX;
    @Schema(description = "开始点位y轴", example = "15890")
    private String startPointY;
    @Schema(description = "结束点位x轴", example = "15890")
    private String endPointX;
    @Schema(description = "结束点位y轴", example = "15890")
    private String endPointY;

    @Schema(description = "开始控制点x轴", example = "15890")
    private String beginControlX;

    @Schema(description = "开始控制点y轴", example = "15890")
    private String beginControlY;

    @Schema(description = "结束控制点x轴", example = "15890")
    private String endControlX;

    @Schema(description = "结束控制点y轴", example = "15890")
    private String endControlY;

    @Schema(description = "实际开始点位x轴", example = "15890")
    private String actualStartPointX;

    @Schema(description = "实际开始点位y轴", example = "15890")
    private String actualStartPointY;

    @Schema(description = "实际结束点位x轴", example = "15890")
    private String actualEndPointX;

    @Schema(description = "实际结束点位y轴", example = "15890")
    private String actualEndPointY;

    @Schema(description = "实际开始控制点x轴", example = "15890")
    private String actualBeginControlX;

    @Schema(description = "实际开始控制点y轴", example = "15890")
    private String actualBeginControlY;

    @Schema(description = "实际结束控制点x轴", example = "15890")
    private String actualEndControlX;

    @Schema(description = "实际结束控制点y轴", example = "15890")
    private String actualEndControlY;

    @Schema(description = "膨胀区域前", example = "15890")
    private BigDecimal expansionZoneFront;

    @Schema(description = "膨胀区域后", example = "15890")
    private BigDecimal expansionZoneAfter;

    @Schema(description = "膨胀区域左", example = "15890")
    private BigDecimal expansionZoneLeft;

    @Schema(description = "膨胀区域右", example = "15890")
    private BigDecimal expansionZoneRight;

    @Schema(description = "起点宽")
    private BigDecimal beginWidth;

    @Schema(description = "起点高")
    private BigDecimal beginHigh;

    @Schema(description = "终点宽")
    private BigDecimal endWidth;

    @Schema(description = "终点高")
    private BigDecimal endHigh;

    @Schema(description = "行走方法 0.直线 1.曲线")
    private Integer method;

    @Schema(description = "方向 1.单向 2.双向", example = "15890")
    private Integer direction;

    @Schema(description = "正向限速(m/s)", example = "15890")
    private BigDecimal forwardSpeedLimit;

    @Schema(description = "反向限速(m/s)", example = "15890")
    private BigDecimal reverseSpeedLimit;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;


    @Schema(description = "车头朝向(0:正正 1:正反 2:反正 3:反反 4正随 5随正 6随反 7反随 8随随", example = "15890")
    private Integer toward;

}
