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

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.Set;


@Schema(description = "管理后台 - 车辆信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class RobotInformationPageRespVO {
    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21881")
    @JsonSerialize(using = ToStringSerializer.class)
    @ExcelProperty("主键ID")
    private Long id;

    @Schema(description = "车辆类型表id", example = "28234")
    private Long robotModelId;

    @Schema(description = "车辆类型")
    @ExcelProperty("车辆类型")
    private String robotModelNumber;

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

    @Schema(description = "上传图片附件", example = "https://www.iocoder.cn")
    @ExcelProperty("上传图片附件")
    private String url;

    @Schema(description = "电量")
    @ExcelProperty("电量")
    private String electricity;

    @Schema(description = "在线状态/离线状态（0：离线、1：在线）", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("在线状态/离线状态（0：离线、1：在线）")
    private Integer onlineStatus = 0;

    @Schema(description = "车机状态（0：锁定、 1：空闲、、2:异常）", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("车机状态（0：锁定、 1：空闲、、2:异常）")
    private Integer robotEssenceStatus = 0;

    @Schema(description = "任务状态（0：待命中、1：处理中、2:充电中）", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("任务状态（0：待命中、1：处理中、2:充电中）")
    private Integer robotTaskStatus = 0;

    @Schema(description = "异常等级(0,1,2,3,4)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("异常等级(0,1,2,3,4)")
    private Integer robotCodeLevel = 0;

    @Schema(description = "异常信息", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("异常信息")
    private String robotCodeMsg;

    @Schema(description = "AGV状态（0：暂停且无任务、1：暂停(有处理中的任务)、2：任务中、3：待命、4:充电中）", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("AGV状态（0：暂停且无任务、1：暂停(有处理中的任务)、2：任务中、3：待命、4:充电中）")
    private Integer robotStatus;

    @Schema(description = "自动充电电量")
    private Integer autoCharge;

    @Schema(description = "楼层")
    @ExcelProperty("楼层")
    public String floor;

    @Schema(description = "区域")
    @ExcelProperty("区域")
    public String area;

    @Schema(description = "信息")
    @ExcelProperty("信息")
    public String msg;

    @Schema(description = "mac地址")
    private String macAddress;

    @Schema(description = "任务模式（0：拒收任务(锁定)、1：正常）")
    private Integer robotTaskModel;

    @Schema(description = "楼层/区域(json)")
    private Set<Long> floorAreaJson;

    @Schema(description = "是否自动充电（0:手动充电,1:自动充电）")
    private Integer chargeType;

    @Schema(description = "robot_task_detail的id")
    private Long taskDetailId;

    @Schema(description = "车辆IP")
    private String robotIp;

    @Schema(description = "车辆端口")
    private Long robotPort;

    @Schema(description = "车辆是否有货")
    private String cargoDetected;

    @Schema(description = "车辆是否暂停 :  1:已暂停,  其他:未暂停， ")
    private Integer isStop;
}
