package com.cmvr.inspection.domain.vo;

import com.cmvr.common.annotation.Excel;
import com.cmvr.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 * 巡检机器人视图对象（包含关联信息）
 * 
 * @author cmvr-iot
 * @since 2026-05-29
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ApiModel("巡检机器人视图对象")
public class InspectionRobotVo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    @ApiModelProperty("id")
    private String id;

    /** 机器人编码 */
    @Excel(name = "机器人编码")
    @ApiModelProperty("机器人编码")
    private String robotCode;

    /** 机器人名称 */
    @Excel(name = "机器人名称")
    @ApiModelProperty("机器人名称")
    private String robotName;

    /** 机器人型号 */
    @Excel(name = "机器人型号")
    @ApiModelProperty("机器人型号")
    private String robotModel;

    /** 机器人类型 */
    @Excel(name = "机器人类型")
    @ApiModelProperty("机器人类型")
    private String robotType;

    /** IP地址 */
    @Excel(name = "IP地址")
    @ApiModelProperty("IP地址")
    private String ipAddress;

    /** 端口号 */
    @Excel(name = "端口号")
    @ApiModelProperty("端口号")
    private Integer port;

    /** 当前地图ID */
    @Excel(name = "当前地图ID")
    @ApiModelProperty("当前地图ID")
    private String currentMapId;

    /** 当前地图名称（关联字段） */
    @Excel(name = "当前地图名称")
    @ApiModelProperty("当前地图名称")
    private String currentMapName;

    /** 机器人中地图名称 */
    @Excel(name = "机器人中地图名称")
    @ApiModelProperty("机器人中地图名称")
    private String robotMapName;

    /** 当前状态 */
    @Excel(name = "当前状态")
    @ApiModelProperty("当前状态(0在线 1离线 2充电中 3巡检中)")
    private String status;

    /** 电量百分比 */
    @Excel(name = "电量百分比")
    @ApiModelProperty("电量百分比")
    private Integer batteryLevel;

    /** 当前位置 */
    @Excel(name = "当前位置")
    @ApiModelProperty("当前位置")
    private String currentPosition;

    /** 创建人昵称 */
    @Excel(name = "创建人昵称")
    @ApiModelProperty("创建人昵称")
    private String createByName;

    /** 修改人昵称  */
    @Excel(name = "修改人昵称")
    @ApiModelProperty("修改人昵称")
    private String updateByName;

    /** 终端id */
    @Excel(name = "终端id")
    @ApiModelProperty("终端id")
    private String terminalId;

}
