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;

import java.util.Date;

/**
 * 巡检任务执行实例视图对象（包含关联信息）
 * 
 * @author cmvr-iot
 * @since 2026-06-01
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@ApiModel("巡检任务执行实例视图对象")
public class InspectionTaskInstanceVo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

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

    /** 任务ID */
    @Excel(name = "任务ID")
    @ApiModelProperty("任务ID")
    private String taskId;

    /** 任务名称（关联字段） */
    @Excel(name = "任务名称")
    @ApiModelProperty("任务名称")
    private String taskName;

    /** 任务编码（关联字段） */
    @Excel(name = "任务编码")
    @ApiModelProperty("任务编码")
    private String taskCode;

    /** 机器人ID */
    @Excel(name = "机器人ID")
    @ApiModelProperty("机器人ID")
    private String robotId;

    /** 机器人名称（关联字段） */
    @Excel(name = "机器人名称")
    @ApiModelProperty("机器人名称")
    private String robotName;

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

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

    /** 执行状态 */
    @Excel(name = "执行状态")
    @ApiModelProperty("执行状态(0待执行 1执行中 2已完成 3已取消 4执行失败 5已暂停)")
    private String status;

    /** 开始时间 */
    @Excel(name = "开始时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("开始时间")
    private Date startTime;

    /** 结束时间 */
    @Excel(name = "结束时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("结束时间")
    private Date endTime;

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

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

    @Excel(name = "检测任务id")
    @ApiModelProperty("检测任务id")
    private String taskInsId;

    @Excel(name = "点位数量")
    @ApiModelProperty("点位数量")
    private Integer waypointCount;

}
