package com.gyee.alarm.model.auto;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.time.LocalDateTime;
import java.util.Date;

import com.gyee.alarm.util.ChineseDes;
import lombok.*;
import lombok.experimental.Accessors;

/**
 * <p>
 * 自定义报警配置
 * </p>
 *
 * @author shilin
 * @since 2023-08-09
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Accessors(chain = false) // 设置 chain = false，避免用户导入有问题
public class ProEconAlarmRule extends Model {

    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    @ExcelProperty("编号")

    @TableId(value = "ID",type = IdType.INPUT)
    private String id;

    /**
     * 自定义报警名称
     */
    @ChineseDes("自定义报警名称")
    @ExcelProperty("自定义报警名称")
    private String name;

    /**
     * 报警描述
     */
    @ChineseDes("报警描述")
    @ExcelProperty("报警描述")
    private String description;

    /**
     * 公式
     */
    @ChineseDes("公式")
    @ExcelProperty("公式")
    private String expression;

    /**
     * 标签
     */
    @ChineseDes("标签")
    @ExcelProperty("标签")
    private String tag;

    /**
     * 报警级别
     */
    @ChineseDes("报警级别")
    @ExcelProperty("报警级别")
    private Integer rank;

    /**
     * 机型
     */
    @ChineseDes("机型")
    @ExcelProperty("机型")
    private String modelId;

    /**
     * 报警类别
     */
    @ChineseDes("报警类别")
    @ExcelProperty("报警类别")
    private String category;

    /**
     * 范围
     */
    @ChineseDes("范围")
    @ExcelProperty("范围")
    private String range;

    /**
     * 场站ID
     */
    @ChineseDes("场站ID")
    @ExcelProperty("场站ID")
    private String stationId;

    /**
     * 项目ID
     */
    @ChineseDes("项目ID")
    @ExcelProperty("项目ID")
    private String projectId;

    /**
     * 线路ID
     */
    @ChineseDes("线路ID")
    @ExcelProperty("线路ID")
    private String lineId;

    /**
     * 设备ID
     */
    @ChineseDes("设备ID")
    @ExcelProperty("设备ID")
    private String deviceId;

    /**
     * 电气ID
     */
    @ChineseDes("电气ID")
    @ExcelProperty("电气ID")
    private String electricalId;

    /**
     * 关联部件
     */
    @ChineseDes("关联部件")
    @ExcelProperty("关联部件")
    private String relatedParts;

    /**
     * 创建时间
     */
    @ChineseDes("创建时间")
    @ExcelProperty("创建时间")
    private Date createTime;

    /**
     * 是否启用
     */
    @ChineseDes("是否启用")
    @ExcelProperty("是否启用")
    private Boolean enable;
    /**
     * 统一识别码(如果通过uniformCode配置，则设备类型，场站，机型不能为空)
     */
    private String uniformCode;

    @TableField(exist = false)
    private String stationName;
    @TableField(exist = false)
    private String relatedPartsName;

    @TableField(exist = false)
    private String alarmPlan;
}
