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 javax.validation.constraints.NotEmpty;
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 PositionMapItemPageReqVO extends PageParam {

    @Schema(description = "仓库点位地图表id", example = "30963")
    private Long positionMapId;

    @Schema(description = "库区id(自定义)", example = "30963")
    private Long areaId;

    @Schema(description = "巷道id(自定义)", example = "30963")
    private Long laneId;

    @Schema(description = "坐标x轴")
    private String locationX;

    @Schema(description = "坐标y轴")
    private String locationY;

    @Schema(description = "点位自增排序")
    private Long sortNum;

    @Schema(description = "类型 1.路径点位 2.库位点 3.充电桩 4.停车点 5.区域变更点 6.等待点 7.文字点 8.检测点 --- 后续补充", example = "1")
    private Integer type;

    @Schema(description = "对应各个类型的独有属性Json格式 例如（{库位长度:1,库位宽度:2,库位方向:单向}）", example = "1")
    private String dataJson;

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

    @Schema(description = "弧度")
    private String locationYaw;

    @Schema(description = "排序的位置,越大越优先堆放")
    private Long locationNumber;

    @Schema(description = "等待点使用状态, 0:空闲 ,1:前往停车点(预占用停车点) ,2.使用中(已经在停车位上)")
    private Integer useStatus;

    @Schema(description = "AGV编号")
    private String robotNo;
}
