package com.xzzn.ems.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xzzn.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.xzzn.common.annotation.Excel;

/**
 * 告警记录对象 ems_alarm_records
 *
 * @author xzzn
 * @date 2025-06-29
 */
public class EmsAlarmRecords extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**  */
    private Long id;

    /** 设备类型 */
    @Excel(name = "设备类型")
    private String deviceType;

    /** 告警等级：A-提示 B-一般 C-严重 D紧急 */
    @Excel(name = "告警等级：A-提示 B-一般 C-严重 D紧急")
    private String alarmLevel;

    /** 告警内容 */
    @Excel(name = "告警内容")
    private String alarmContent;

    /** 告警发生时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "告警发生时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date alarmStartTime;

    /** 告警结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "告警结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date alarmEndTime;

    /** 告警点位 */
    @Excel(name = "告警点位")
    private String alarmPoint;

    /** 状态:0-待处理 1-已处理 2-处理中 */
    @Excel(name = "状态:0-待处理 1-已处理 2-处理中")
    private String status;

    /** 站点id */
    @Excel(name = "站点id")
    private String siteId;

    /** 设备唯一标识符 */
    @Excel(name = "设备唯一标识符")
    private String deviceId;

    /** 工单号（规则：T+日期+6位随机） */
    @Excel(name = "工单号", readConverterExp = "规=则：T+日期+6位随机")
    private String ticketNo;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setDeviceType(String deviceType)
    {
        this.deviceType = deviceType;
    }

    public String getDeviceType()
    {
        return deviceType;
    }

    public void setAlarmLevel(String alarmLevel)
    {
        this.alarmLevel = alarmLevel;
    }

    public String getAlarmLevel()
    {
        return alarmLevel;
    }

    public void setAlarmContent(String alarmContent)
    {
        this.alarmContent = alarmContent;
    }

    public String getAlarmContent()
    {
        return alarmContent;
    }

    public void setAlarmStartTime(Date alarmStartTime)
    {
        this.alarmStartTime = alarmStartTime;
    }

    public Date getAlarmStartTime()
    {
        return alarmStartTime;
    }

    public void setAlarmEndTime(Date alarmEndTime)
    {
        this.alarmEndTime = alarmEndTime;
    }

    public Date getAlarmEndTime()
    {
        return alarmEndTime;
    }

    public void setAlarmPoint(String alarmPoint)
    {
        this.alarmPoint = alarmPoint;
    }

    public String getAlarmPoint()
    {
        return alarmPoint;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public void setSiteId(String siteId)
    {
        this.siteId = siteId;
    }

    public String getSiteId()
    {
        return siteId;
    }

    public void setDeviceId(String deviceId)
    {
        this.deviceId = deviceId;
    }

    public String getDeviceId()
    {
        return deviceId;
    }

    public void setTicketNo(String ticketNo)
    {
        this.ticketNo = ticketNo;
    }

    public String getTicketNo()
    {
        return ticketNo;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("deviceType", getDeviceType())
                .append("alarmLevel", getAlarmLevel())
                .append("alarmContent", getAlarmContent())
                .append("alarmStartTime", getAlarmStartTime())
                .append("alarmEndTime", getAlarmEndTime())
                .append("alarmPoint", getAlarmPoint())
                .append("status", getStatus())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .append("siteId", getSiteId())
                .append("deviceId", getDeviceId())
                .append("ticketNo", getTicketNo())
                .toString();
    }
}