package cn.iocoder.yudao.module.system.controller.admin.information.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.*;

import java.math.BigDecimal;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 设备信息分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class DeviceInformationPageReqVO extends PageParam {
    @Schema(description = "地图id", example = "6609")
    private Long positionMapId;

    @Schema(description = "地图子表节点id", example = "23591")
    private Long positionMapItemId;

    @Schema(description = "库位坐标x轴")
    private String locationX;

    @Schema(description = "库位坐标y轴")
    private String locationY;

    @Schema(description = "实际坐标x轴")
    private String actualLocationX;

    @Schema(description = "实际坐标Y轴")
    private String actualLocationY;

    @Schema(description = "宽度")
    private BigDecimal locationWide;

    @Schema(description = "深度")
    private BigDecimal locationDeep;

    //1:充电桩,2:输送线,3:码垛机,4:自动门,5:提升机,6:信号灯,7:按钮盒,8:拆垛机, 9:摄像头,10 :翻转机
    @Schema(description = "设备类型 字典device_type", example = "2")
    private Integer deviceType;

    @Schema(description = "设备编号")
    private String deviceNo;

    @Schema(description = "设备位置")
    private String deviceLocation;

    @Schema(description = "mac地址")
    private String macAddress;

    @Schema(description = "设备在地图上图标")
    private String mapImageUrl;

    @Schema(description = "上传图片附件", example = "https://www.iocoder.cn")
    private String url;

    @Schema(description = "图片设置（1：默认图片、2：上传图片、 3：不显示图片）")
    private Integer pictureConfig;

    @Schema(description = "设备状态（1：在线、2：离线、 3：异常）", example = "1")
    private Integer deviceStatus;

    @Schema(description = "设备启用禁用（0：禁用、1：启用）")
    private Integer deviceEnable;

    @Schema(description = "设备协议")
    private String deviceAgreement;

    @Schema(description = "设备最后通讯时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] deviceLastTime;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "设备使用状态（0:空闲、1:使用中）")
    private Integer deviceUseStatus;

    @Schema(description = "设备专有属性（1：自动充电类型充电桩、2：手动充电类型充电桩）")
    private Integer deviceAttribute;

    @Schema(description = "设备IP")
    private String deviceIp;

    @Schema(description = "端口")
    private String devicePort;

    @Schema(description = "最后使用者")
    private String lastUser;

    @Schema(description = "摄像头类型（1 枪机 2半球 3球机 4云台枪机）")
    private String cameraType;

    @Schema(description = "摄像头编号")
    private String cameraCode;

    @Schema(description = "ware_house_take_point的id")
    private Long takePointId;

}
