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

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

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

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

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

    @Schema(description = "隧道名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @NotEmpty(message = "隧道名称不能为空")
    private String tunnelName;

    @Schema(description = "所属组织", requiredMode = Schema.RequiredMode.REQUIRED, example = "23135")
    @NotEmpty(message = "所属组织不能为空")
    private String deptId;

    @Schema(description = "所属路段", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "所属路段不能为空")
    private String road;

    @Schema(description = "经度")
    private String longitude;

    @Schema(description = "纬度")
    private String latitude;

    @Schema(description = "隧道类型 0双洞双向1单洞双向2单洞单向", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "隧道类型 0双洞双向1单洞双向2单洞单向不能为空")
    private String tunnelType;

    @Schema(description = "隧道设计类型（隧道管控）", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "隧道设计类型（隧道管控）不能为空")
    private String tunnelDesignType;

    @Schema(description = "长度（米）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "长度（米）不能为空")
    private String length;

    @Schema(description = "设计流量")
    private Long trafficFlow;

    @Schema(description = "横通道数量")
    private Integer crossNum;

    @Schema(description = "开始桩号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "开始桩号不能为空")
    private String mileStart;

    @Schema(description = "结束桩号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "结束桩号不能为空")
    private String mileEnd;

    @Schema(description = "是否常用隧道,1是，0不是")
    private String isCommon;

    @Schema(description = "是否有3D模型,1是，0不是")
    private String model3dFlag;

    @Schema(description = "3D模型文件路径")
    private String model3dPath;

    @Schema(description = "模块")
    private String modules;

    @Schema(description = "是否启用:1启用,0不启用")
    private Integer enable;
    @Schema(description = "第三方隧道id")
    private String sfTunnelId;
    @Schema(description = "排序")
    private Integer sort;

}
