package com.yuchen.saas.park.api.dto.elevator;

import com.thinkunion.park.service.common.constant.GroupAction;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import java.util.List;

/**
 * @Author: baichaojie
 * @CreateTime: 2024/06/24 14:25
 * @Description: TODO
 * @Version: 1.0
 */
@Data
public class ElevatorPointDTO {

    @ApiModelProperty(name = "id", value = "id")
    @NotNull(groups = GroupAction.UpdateAction.class, message = "id不能为空")
    @Null(groups = GroupAction.InsertAction.class, message = "id必须为空")
    private Long id;

    /**
     * 设备编码
     */
    @ApiModelProperty(name = "deviceDid", value = "设备编码")
    private String deviceDid;

    /**
     * 电梯ID
     */
    @ApiModelProperty(name = "elevatorId", value = "电梯ID")
    private Long elevatorId;

    /**
     * 电梯点名称
     */
    @ApiModelProperty(name = "elevatorName", value = "电梯点名称")
    @NotBlank(message = "电梯点名称不能为空")
    private String elevatorName;

    /**
     * 是否启用
     */
    @ApiModelProperty(name = "isEnabled", value = "是否启用")
    @NotNull(message = "请选择是否启用")
    private Boolean isEnabled;

    /**
     * 项目ID
     */
    @ApiModelProperty(name = "parkId", value = "项目ID")
    @NotNull(message = "请选择项目ID")
    private Long parkId;


    /**
     * 楼栋id
     */
    @ApiModelProperty(name = "buildingId", value = "楼栋id")
    @NotNull(message = "请选择楼栋id")
    private Long buildingId;
    /**
     * 单元id
     */
    @ApiModelProperty(name = "unitId", value = "单元id")
    @NotNull(message = "请选择单元id")
    private Long unitId;
    /**
     * 起点层
     */
    @ApiModelProperty(name = "startFloor", value = "起点层")
    @NotNull(message = "起点层不能为空")
    private Integer startFloor;
    /**
     * 终点层
     */
    @ApiModelProperty(name = "endFloor", value = "终点层")
    @NotNull(message = "终点层不能为空")
    private Integer endFloor;


    /**
     * 产品id;
     */
    @ApiModelProperty(name = "productId", value = "所属产品id")
    @NotNull(message = "所属产品id不能为空")
    private Long productId;


    /**
     * 使用类型?设备分类?
     */
    @ApiModelProperty(name = "useType", value = "使用类型/设备分类")
    private Integer useType;


    /**
     * 大类（1：视频监控，2：智能硬件，3：传感设备）
     */
    @ApiModelProperty(name = "broadCategory", value = "大类（1：视频监控，2：智能硬件，3：传感设备）")
    @NotNull(message = "请选择设备大类")
    private Long broadCategory;


    /**
     * 设备类型
     */
    @ApiModelProperty(name = "deviceCategoryId", value = "设备类型")
    @NotNull(message = "请选择设备类型")
    private Long deviceCategoryId;


    /**
     * 关联人脸识别设备Id,逗号隔开;
     */
    @ApiModelProperty(name = "faceDeviceIds", value = "(预留)人脸识别设备Id,逗号隔开")
    private String faceDeviceIds;

    /**
     * 关联视频识别设备Id,逗号隔开;
     */
    @ApiModelProperty(name = "videoDeviceIds", value = "(预留)视频设备Id,逗号隔开")
    private String videoDeviceIds;


    /**
     * iot产品key
     */
    @ApiModelProperty(name = "productKey", value = "iot产品key")
    @NotBlank(message = "iot产品key不能为空")
    private String productKey;

    /**
     * 设备名称
     */
    @ApiModelProperty(name = "deviceName", value = "设备名称")
    private String deviceName;
    /**
     * 设备品牌id
     */
    @ApiModelProperty(name = "deviceBrandId", value = "设备品牌id")
    @NotNull(message = "请选择设备品牌")
    private Long deviceBrandId;

    /**
     * 型号名称
     */
    @ApiModelProperty(name = "modelName", value = "型号名称")
    private String modelName;

    /**
     * 设备位置
     */
    @ApiModelProperty(name = "location", value = "设备位置")
    private String location;
    /**
     * 经度
     */
    @ApiModelProperty(name = "longitude", value = "经度")
    private String longitude;
    /**
     * 纬度
     */
    @ApiModelProperty(name = "latitude", value = "纬度")
    private String latitude;


    /**
     * 账号
     */
    @ApiModelProperty(name = "user", value = "账号")
    private String user;
    /**
     * 密码
     */
    @ApiModelProperty(name = "pwd", value = "密码")
    private String pwd;
    /**
     * 设备图片
     */
    @ApiModelProperty(name = "deviceImg", value = "设备图片")
    private String deviceImg;
    /**
     * 设备描述
     */
    @ApiModelProperty(name = "deviceDesc", value = "设备描述")
    private String deviceDesc;

    /**
     * 电梯组id
     */
    @ApiModelProperty(name = "elevatorGroupIds", value = "电梯组id")
    private List<Long> elevatorGroupIds;




}