package com.cico.nest.lcdp.boot.core.qxsd.adapter.web.vo.tunnelDevice;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 隧道设备信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class TunnelDeviceRespVO {

    @Schema(description = "主键,设备id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19154")
    @ExcelProperty("主键,设备id")
    private String id;

    @Schema(description = "所属机构id", requiredMode = Schema.RequiredMode.REQUIRED, example = "5425")
    @ExcelProperty("所属机构id")
    private String deptId;

    @Schema(description = "隧道编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("隧道编码")
    private String tunnelCode;

    @Schema(description = "洞id", example = "27970")
    @ExcelProperty("洞id")
    private String holeId;

    @Schema(description = "左右洞位置：左洞/右洞")
    @ExcelProperty("左右洞位置：左洞/右洞")
    private String holePosition;

    @Schema(description = "行车方向：如杭州方向", requiredMode = Schema.RequiredMode.REQUIRED, example = "lcdp")
    @ExcelProperty("行车方向：如杭州方向")
    private String directionName;

    @Schema(description = "设备ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty( "设备ID")
    private String deviceId;

    @Schema(description = "设备编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("设备编码")
    private String deviceCode;

    @Schema(description = "上下行方向",  example = "10700")
    private String directionUpdown;

    @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @ExcelProperty("设备名称")
    private String deviceName;

    @Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("设备类型")
    private String deviceType;

    @Schema(description = "设备ip地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("设备ip地址")
    private String deviceIp;

    @Schema(description = "UUID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16432")
    @ExcelProperty("UUID")
    private String deviceUuid;

    @Schema(description = "所属模块", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("所属模块")
    private String module;
    @Schema(description = "cameraIndexCode摄像头唯一编码")
    private String cameraIndexCode;

    /**
     * 摄像机标签：1、全息相机，2人通相机，3汽通相机，4紧急停车带相机
     */
    @Schema(description = "摄像机标签")
    private Integer cameraLable;
    @Schema(description = "开始桩号")
    @ExcelProperty("开始桩号")
    private String mileStart;

    @Schema(description = "结束桩号")
    @ExcelProperty("结束桩号")
    private String mileEnd;

    @Schema(description = "桩号偏移量")
    @ExcelProperty("桩号偏移量")
    private String mileStartOffset;

    @Schema(description = "所在行号（前端铺设使用）")
    @ExcelProperty("所在行号（前端铺设使用）")
    private String line;

    @Schema(description = "横坐标")
    @ExcelProperty("横坐标")
    private String axisX;

    @Schema(description = "纵坐标")
    @ExcelProperty("纵坐标")
    private String axisY;

    @Schema(description = "长度")
    @ExcelProperty("长度")
    private String length;

    @Schema(description = "模型版本")
    @ExcelProperty("模型版本")
    private String modelVersion;


    @Schema(description = "区控编码")
    @ExcelProperty("区控编码")
    private String plcCode;

    @Schema(description = "是否摄像机联动，1是0否")
    @ExcelProperty("是否摄像机联动，1是0否")
    private String needCamera;

    @Schema(description = "视频事件设备ID", example = "21394")
    @ExcelProperty("视频事件设备ID")
    private String trafficEventDeviceId;

    @Schema(description = "车道信息")
    @ExcelProperty("车道信息")
    private String laneInfo;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "省中心名称")
    private String provincecenter;
    @Schema(description = "区域中心名称")
    private String areacenter;
    @Schema(description = "分中心名称")
    private String branchcenter;
    @Schema(description = "隧道所名称")
    private String tunnelgroup;
    @Schema(description = "路段")
    private String road;
    @Schema(description = "隧道名称")
    private String tunnelname;
    //所属组织名称
    private String deptName;
}
