package com.yuchen.saas.parking.charge.api.entity.charge;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.nest.springwrap.core.mp.base.BaseEntity;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * <p>
 * 电站设备信息表
 * </p>
 *
 * @author lyb
 * @since 2023-07-04
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("spc_station_charge_equipment")
@ApiModel(value="SpcStationChargeEquipment对象", description="电站设备信息表")
public class SpcStationChargeEquipment extends BaseEntity {

    /**
     * 点位ID
     */
    @ApiModelProperty(name = "siteId", value = "点位ID")
    private Long siteId;
    /**
     * 设备编号
     */
    @ApiModelProperty(name = "productKey", value = "设备编号")
    private String productKey;
    /**
     * 设备名字
     */
    @ApiModelProperty(name = "deviceName", value = "设备名字")
    @NotNull(message = "deviceName不能为空")
    private String deviceName;
    /**
     * 名称
     */
    @ApiModelProperty(name = "name", value = "名称")
    @NotNull(message = "名称不能为空")
    private String name;
    /**
     * 设备类型
     */
    @ApiModelProperty(name = "equipmentType", value = "设备类型")
    private Integer equipmentType;
    /**
     * 设备分类名字
     */
    @ApiModelProperty(name = "categoryName", value = "设备分类名字")
    private String categoryName;
    /**
     * 设备分类唯一ID
     */
    @ApiModelProperty(name = "categoryCode", value = "设备分类唯一ID")
    private String categoryCode;
    /**
     * 设备是否在线(1:在线，0:离线)
     */
    @ApiModelProperty(name = "isOnline", value = "设备是否在线(1:在线，0:离线)")
    private Integer isOnline;
    /**
     * 设备照片
     */
    @ApiModelProperty(name = "imgSrc", value = "设备照片")
    private String imgSrc;
    /**
     * 安装位置
     */
    @ApiModelProperty(name = "setPosition", value = "安装位置")
    private String setPosition;
    /**
     * 园区id
     */
    @ApiModelProperty(name = "parkId", value = "园区id")
    private Long parkId;
    /**
     * 所属模块
     */
    @ApiModelProperty(name = "module", value = "所属模块")
    private String module;
    /**
     * 楼栋id
     */
    @ApiModelProperty(name = "buildingId", value = "楼栋id")
    private Long buildingId;
    /**
     * 楼层id
     */
    @ApiModelProperty(name = "floorId", value = "楼层id")
    private Long floorId;
    /**
     * 房间id
     */
    @ApiModelProperty(name = "roomId", value = "房间id")
    private Long roomId;
    /**
     * 点位ID
     */
    @ApiModelProperty(name = "pointId", value = "点位ID")
    private Long pointId;
    /**
     * 设备位置(平面位置信息)
     */
    @ApiModelProperty(name = "planePosition", value = "设备位置(平面位置信息)")
    private String planePosition;
    /**
     * 部件状态，0：未注册 1：正常 2: 修复中 3：异常状态（修复中状态目前没用到，未注册时设备没有在离线状态） 空-所有状态
     */
    @ApiModelProperty(name = "unitStatus", value = "部件状态，0：未注册 1：正常 2: 修复中 3：异常状态（修复中状态目前没用到，未注册时设备没有在离线状态） 空-所有状态")
    private Integer unitStatus;
    /**
     * 设备地址码
     */
    @ApiModelProperty(name = "addressCode", value = "设备地址码")
    private String addressCode;
    /**
     * 海康设备资源唯一标识
     */
    @ApiModelProperty(name = "indexCode", value = "海康设备资源唯一标识")
    private String indexCode;
    /**
     * 设备分类表id,来自表pmg_bat_device_category
     */
    @ApiModelProperty(name = "categoryId", value = "设备分类表id,来自表pmg_bat_device_category")
    private Long categoryId;
    /**
     * 设备是否被分类关联:0是未关联,1是已关联
     */
    @ApiModelProperty(name = "categoryRel", value = "设备是否被分类关联:0是未关联,1是已关联")
    private Integer categoryRel;
    /**
     * 最后一次心跳汇报时间
     */
    @ApiModelProperty(name = "heartbeatTime", value = "最后一次心跳汇报时间")
    private Date heartbeatTime;
    /**
     * 电站id
     */
    @ApiModelProperty(name = "stationId", value = "电站id")
    @NotNull(message = "电站id不能为空")
    private Long stationId;
    /**
     * 电站名称
     */
    @ApiModelProperty(name = "stationName", value = "电站名称")
    private String stationName;
    @ApiModelProperty(name = "groupId", value = "分组id")
    private Long groupId;
    @ApiModelProperty(name = "remark", value = "备注信息")
    private String remark;
    @ApiModelProperty(name = "brandModel", value = "品牌型号")
    private String brandModel;
    @ApiModelProperty(name = "productName", value = "产品类型名字")
    private String productName;
    @TableField(exist = false)
    private String groupName;
}
