package cn.iocoder.yudao.module.system.config.poperties;

import cn.iocoder.yudao.module.system.config.poperties.dto.RobotCharge;
import cn.iocoder.yudao.module.system.config.poperties.dto.RobotConfig;
import cn.iocoder.yudao.module.system.config.poperties.dto.RobotDoingAction;
import cn.iocoder.yudao.module.system.config.poperties.dto.Task;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

@Data
@RefreshScope
@Component
@ConfigurationProperties(prefix = "zn")
public class ZnConfigConstant {
    //任务号开头
    private String taskNo;
    //自动移动任务号开头
    private String moveNo;
    //自动充电任务号开头
    private String chargeNo;
    //摄像头秘钥
    private String cameraSecretKey;
    //是否开启循环
    private Boolean doCycle;
    //线库是否自动移库
    private Boolean laneAutoMove;
    //机器人上报点位存储时间(秒)
    private Long robotPositionCacheTime;
    //存在循环的任务，是否开启自动移库
    private Boolean cycleDoAutoMove;
    //机器人充满电的电量
    private String fullElectricity;
    //机器人对同一线库/点位是不是只能有一台机器人做任务
    private Boolean taskNeedSingle;
    //库位排序的差值(下发取货任务，将库位排序减去此值，然后取绝对值)
    private Long locationNumberReduce;
    //机器人正在做的动作
    private RobotDoingAction robotDoingAction;
    //机器人充电的配置
    private RobotCharge robotCharge;
    //任务相关的配置
    private Task task ;
    //机器人取放货默认配置
    private RobotConfig robotConfig;
    //是否开启限流
    private Boolean openRateLimiter;
    //是否为仿真环境
    private Boolean isSimulation;
    //是否为发送默认的车辆所在地图和点位
    private Boolean sendRobotInitPose;
    //点位信息每次发送的数据量
    private Integer synchronousAllMapNode;
    //创建任务不校验
    private Boolean taskNotCheck;
    //检测点最短距离
    private Double checkShortestDistance;
    //检测点最长距离
    private Double checkLongestDistance;
    //检测点成成距离
    private String mapCheckDistance;
    //地图弧线距离
    private String mapArcOffset;
    //抬叉扣减高度
    private String deductionHeight;
    //默认检测高度
    private Double detectHeight;
}
