package cn.iocoder.yudao.module.system.dal.dataobject.information;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.*;
import lombok.*;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 设备信息 DO
 *
 * @author 陈宾顺
 */
@TableName("device_information")
@KeySequence("device_information_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DeviceInformationDO extends BaseDO {

    /**
     * 主键ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /**
     * 地图id
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Long positionMapId;
    /**
     * 地图子表节点id
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Long positionMapItemId;
    /**
     * 库位坐标x轴
     */
    private String locationX;
    /**
     * 库位坐标y轴
     */
    private String locationY;
    /**
     * 实际坐标x轴
     */
    private String actualLocationX;
    /**
     * 实际坐标y轴
     */
    private String actualLocationY;
    /**
     * 宽度
     */
    private BigDecimal locationWide;
    /**
     * 深度
     */
    private BigDecimal locationDeep;
    /**
     * 1:充电桩,2:输送线,3:码垛机,4:自动门,5:提升机,6:信号灯,7:按钮盒,8:拆垛机, 9:摄像头 ,10 :翻转机
     * 设备类型 字典device_type
     */
    private Integer deviceType;
    /**
     * 设备编号
     */
    private String deviceNo;
    /**
     * 设备位置
     */
    private String deviceLocation;
    /**
     * mac地址
     */
    private String macAddress;
    /**
     * 设备在地图上图标
     */
    private String mapImageUrl;
    /**
     * 上传图片附件
     */
    private String url;
    /**
     * 图片设置（1：默认图片、2：上传图片、 3：不显示图片）
     */
    private Integer pictureConfig;
    /**
     * 设备状态（1：在线、2：离线、 3：异常）
     */
    private Integer deviceStatus;
    /**
     * 设备启用禁用（0：禁用、1：启用）
     */
    private Integer deviceEnable;
    /**
     * 设备协议
     */
    private String deviceAgreement;
    /**
     * 设备最后通讯时间
     */
    private LocalDateTime deviceLastTime;
    /**
     * 设备使用状态（0:空闲、1:使用中）
     */
    private Integer deviceUseStatus;
    /**
     * 设备专有属性（1：自动充电类型充电桩、2：手动充电类型充电桩）
     */
    private Integer deviceAttribute;

    /**
     * 设备IP
     */
    private String deviceIp;

    /**
     * 端口
     */
    private String devicePort;

    /**
     * 最后使用者
     */
    private String lastUser;

    /**
     * 摄像头类型（1 枪机 2半球 3球机 4云台枪机）
     */
    private String cameraType;

    /**
     * 摄像头编号
     */
    private String cameraCode;

    /**
     * ware_house_take_point的id
     */
    private Long takePointId;
}
