package com.zcxk.charge.api.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.zcxk.core.common.pojo.ProgramItem;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;
/**
 * @author  andy
 */
@Data
@ApiModel("报警设置")
public class AlarmSettingVo  {

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    private Integer id;
    /**
     * 租户标识
     */
    @ApiModelProperty(value = "租户标识")
    private String tenantId;
    /**
     * 一级场景id
     */
    @ApiModelProperty(value = "一级场景")
    private Long parentSceneId;
    /**
     * 一级场景名称
     */
    @ApiModelProperty(value = "一级场景名称")
    private String parentSceneName;
    /**
     * 场景id
     */
    @ApiModelProperty(value = "场景id")
    private Long sceneId;
    /**
     * 场景名称
     */
    @ApiModelProperty(value = "场景名称")
    private String sceneName;
    /**
     * 设备编号
     */
    @ApiModelProperty(value = "设备编号")
    private Integer deviceId;
    /**
     * 设备属性编号
     */
    @ApiModelProperty(value = "设备属性编号")
    private Integer attributeId;
    /**
     * 报警类型
     */
    @ApiModelProperty(value = "报警类型",notes = "参数报警、状态报警")
    private String alarmType;
    /**
     * 报警条件
     */
    @ApiModelProperty(value = "报警条件")
    private String alarmCondition;
    /**
     * 报警值
     */
    @ApiModelProperty(value = "报警值")
    private Double alarmValue;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 数据删除标识
     */
    @ApiModelProperty(value = "数据删除标识")
    private Integer status;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    @ApiModelProperty(value = "创建时间")
    private Date dateCreate;
    /**
     * 更新人
     */
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    @ApiModelProperty(value = "更新时间")
    private Date dateUpdate;
    /**
     * 报警设置开始时间
     */
    @ApiModelProperty(value = "报警设置开始时间")
    private String startTime;
    /**
     * 报警设置结束时间
     */
    @ApiModelProperty(value = "报警设置结束时间")
    private String endTime;

    /**
     * 所属公司id
     */
    @ApiModelProperty(value = "所属公司id")
    private Integer companyOrgId;
    /**
     * 所属公司名称
     */
    @ApiModelProperty(value = "所属公司名称")
    private String companyOrgName;
    /**
     * 所属部门id
     */
    @ApiModelProperty(value = "所属部门id")
    private Integer deptOrgId;
    /**
     * 所属部门名称
     */
    @ApiModelProperty(value = "所属部门名称")
    private String deptOrgName;
    /**
     * 场景id
     */
    @ApiModelProperty(value = "场景id及所有下级id")
    private List<Long> sceneIds;
    /**
     * 设备类型
     */
    @ApiModelProperty(value = "设备类型")
    private String deviceType;
    /**
     * 设备名称
     */
    @ApiModelProperty(value = "设备名称")
    private String deviceName;
    /**
     * 属性名称
     */
    @ApiModelProperty(value = "属性名称")
    private String attributeName;
    /**
     * 属性名称
     */
    @ApiModelProperty(value ="权限",hidden = true)
    @JsonIgnore
    private List<ProgramItem> programItems;
    /**
     * 属性名称
     */
    @ApiModelProperty(value="用户权限类型",hidden = true)
    @JsonIgnore
    private Integer permissonType;
    /**
     * 用户类型
     */
    @ApiModelProperty(value = "用户类型(-9999 超管 -999普通用户 2普通用户)",hidden = true)
    @JsonIgnore
    private String userType;

}