package com.bocloud.ims.entity.resource;

import com.bocloud.entity.annotations.Column;
import com.bocloud.entity.annotations.IgnoreAll;
import com.bocloud.entity.annotations.PK;
import com.bocloud.entity.annotations.Table;
import com.bocloud.entity.bean.Generic;
import com.bocloud.entity.meta.PKStrategy;

import java.math.BigDecimal;

/**
 * 告警级别实体类
 * 
 * @author Shaolong_tan
 * @version 1.0
 * @since 2018年4月25日
 *
 */
@Table("alarm_level")
public class AlarmLevel extends Generic {

	@PK(PKStrategy.AUTO)
	private Long id;// ID
	@Column("vendor_id")
	private Long vendorId;// 平台ID
	@Column("catalog")
	private String catalog;// 目标类别
	@Column("catalog_id")
	private Long catalogId;// 目标类别ID
	@Column("type")
	private String type;// 告警的类别：内存， cpu， ip池等 等
	@Column("alarm_mode")
	private String alarmMode;// 告警级别的模式： 使用百分比， 使用绝对值.默认使用百分比
	@Column("level1")
	private BigDecimal level1;// level1-level2 告警的阈值点
	@Column("level2")
	private BigDecimal level2;// level2-level3 告警的阈值点
	@Column("level3")
	private BigDecimal level3;// level3-level4 告警的阈值点
	@Column("level4")
	private BigDecimal level4;// level4-level5 告警的阈值点
	@Column("level_order")
	private String levelOrder;// 告警级别的升降序: ASCE, DESC. 默认ASCE

	@IgnoreAll
	private BigDecimal defaultLevel1; // level1 默认值

	@IgnoreAll
	private BigDecimal defaultLevel2; // level2 默认值

	@IgnoreAll
	private BigDecimal defaultLevel3; // level3 默认值

	@IgnoreAll
	private BigDecimal defaultLevel4; // level4 默认值

	/**
	 * 
	 */
	public AlarmLevel() {
		super();
	}

	public AlarmLevel(BigDecimal defaultLevel1, BigDecimal defaultLevel2) {
		super();
		this.defaultLevel1 = defaultLevel1;
		this.defaultLevel2 = defaultLevel2;
	}

	/**
	 * @return the id
	 */
	public Long getId() {
		return id;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * @return the vendorId
	 */
	public Long getVendorId() {
		return vendorId;
	}

	/**
	 * @param vendorId
	 *            the vendorId to set
	 */
	public void setVendorId(Long vendorId) {
		this.vendorId = vendorId;
	}

	/**
	 * @return the catalog
	 */
	public String getCatalog() {
		return catalog;
	}

	/**
	 * @param catalog
	 *            the catalog to set
	 */
	public void setCatalog(String catalog) {
		this.catalog = catalog;
	}

	/**
	 * @return the catalogId
	 */
	public Long getCatalogId() {
		return catalogId;
	}

	/**
	 * @param catalogId
	 *            the catalogId to set
	 */
	public void setCatalogId(Long catalogId) {
		this.catalogId = catalogId;
	}

	/**
	 * @return the type
	 */
	public String getType() {
		return type;
	}

	/**
	 * @param type
	 *            the type to set
	 */
	public void setType(String type) {
		this.type = type;
	}

	/**
	 * @return the alarmMode
	 */
	public String getAlarmMode() {
		return alarmMode;
	}

	/**
	 * @param alarmMode
	 *            the alarmMode to set
	 */
	public void setAlarmMode(String alarmMode) {
		this.alarmMode = alarmMode;
	}

	/**
	 * @return the level1
	 */
	public BigDecimal getLevel1() {
		return level1;
	}

	/**
	 * @param level1
	 *            the level1 to set
	 */
	public void setLevel1(BigDecimal level1) {
		this.level1 = level1;
	}

	/**
	 * @return the level2
	 */
	public BigDecimal getLevel2() {
		return level2;
	}

	/**
	 * @param level2
	 *            the level2 to set
	 */
	public void setLevel2(BigDecimal level2) {
		this.level2 = level2;
	}

	/**
	 * @return the level3
	 */
	public BigDecimal getLevel3() {
		return level3;
	}

	/**
	 * @param level3
	 *            the level3 to set
	 */
	public void setLevel3(BigDecimal level3) {
		this.level3 = level3;
	}

	/**
	 * @return the level4
	 */
	public BigDecimal getLevel4() {
		return level4;
	}

	/**
	 * @param level4
	 *            the level4 to set
	 */
	public void setLevel4(BigDecimal level4) {
		this.level4 = level4;
	}

	/**
	 * @return the levelOrder
	 */
	public String getLevelOrder() {
		return levelOrder;
	}

	/**
	 * @param levelOrder
	 *            the levelOrder to set
	 */
	public void setLevelOrder(String levelOrder) {
		this.levelOrder = levelOrder;
	}

	/**
	 * @return the defaultLevel1
	 */
	public BigDecimal getDefaultLevel1() {
		return defaultLevel1;
	}

	/**
	 * @param defaultLevel1
	 *            the defaultLevel1 to set
	 */
	public void setDefaultLevel1(BigDecimal defaultLevel1) {
		this.defaultLevel1 = defaultLevel1;
	}

	/**
	 * @return the defaultLevel2
	 */
	public BigDecimal getDefaultLevel2() {
		return defaultLevel2;
	}

	/**
	 * @param defaultLevel2
	 *            the defaultLevel2 to set
	 */
	public void setDefaultLevel2(BigDecimal defaultLevel2) {
		this.defaultLevel2 = defaultLevel2;
	}

	/**
	 * @return the defaultLevel3
	 */
	public BigDecimal getDefaultLevel3() {
		return defaultLevel3;
	}

	/**
	 * @param defaultLevel3
	 *            the defaultLevel3 to set
	 */
	public void setDefaultLevel3(BigDecimal defaultLevel3) {
		this.defaultLevel3 = defaultLevel3;
	}

	/**
	 * @return the defaultLevel4
	 */
	public BigDecimal getDefaultLevel4() {
		return defaultLevel4;
	}

	/**
	 * @param defaultLevel4
	 *            the defaultLevel4 to set
	 */
	public void setDefaultLevel4(BigDecimal defaultLevel4) {
		this.defaultLevel4 = defaultLevel4;
	}

}
