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

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;

@Schema(description = "管理后台 - 隧道设备信息新增/修改 Request VO")
@Data
public class TunnelDeviceSaveReqVO {

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

    @Schema(description = "所属机构id", requiredMode = Schema.RequiredMode.REQUIRED, example = "5425")
    @NotEmpty(message = "所属机构id不能为空")
    private String deptId;

    @Schema(description = "隧道编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "隧道编码不能为空")
    private String tunnelCode;

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

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

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

    @Schema(description = "行车方向：如杭州方向", requiredMode = Schema.RequiredMode.REQUIRED, example = "lcdp")
    @NotEmpty(message = "行车方向：如杭州方向不能为空")
    private String directionName;

    @Schema(description = "设备ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "设备ID不能为空")
    private String deviceId;

    @Schema(description = "设备编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "设备编码不能为空")
    private String deviceCode;

    @Schema(description = "设备名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @NotEmpty(message = "设备名称不能为空")
    private String deviceName;

    @Schema(description = "设备类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotEmpty(message = "设备类型不能为空")
    private String deviceType;

    @Schema(description = "设备ip地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "设备ip地址不能为空")
    private String deviceIp;

    @Schema(description = "UUID", requiredMode = Schema.RequiredMode.REQUIRED, example = "16432")
    @NotEmpty(message = "UUID不能为空")
    private String deviceUuid;

    @Schema(description = "cameraIndexCode摄像头唯一编码")
    private String cameraIndexCode;
    /**
     * 摄像机标签：1、全息相机，2人通相机，3汽通相机，4紧急停车带相机
     */
    @Schema(description = "摄像机标签")
    private Integer cameraLable;
    @Schema(description = "所属模块", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "所属模块不能为空")
    private String module;

    @Schema(description = "开始桩号")
    private String mileStart;

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

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

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

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

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

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

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

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

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

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

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

    @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;
}
