package com.intrbiz.bergamot.model;
import java.sql.Timestamp;
import java.util.EnumSet;
import java.util.UUID;
import com.intrbiz.bergamot.data.BergamotDB;
import com.intrbiz.bergamot.model.message.AlertEncompassesMO;
import com.intrbiz.data.db.compiler.meta.Action;
import com.intrbiz.data.db.compiler.meta.SQLColumn;
import com.intrbiz.data.db.compiler.meta.SQLForeignKey;
import com.intrbiz.data.db.compiler.meta.SQLPrimaryKey;
import com.intrbiz.data.db.compiler.meta.SQLTable;
import com.intrbiz.data.db.compiler.meta.SQLVersion;
@SQLTable(schema = BergamotDB.class, name = "alert_encompasses", since = @SQLVersion({ 3, 30, 0 }) )
public class AlertEncompasses extends BergamotObject<AlertEncompassesMO>
{
private static final long serialVersionUID = 1L;
/**
* The alert
*/
@SQLColumn(index = 1, name = "alert_id", since = @SQLVersion({ 3, 30, 0 }) )
@SQLForeignKey(references = Alert.class, on = "id", onDelete = Action.CASCADE, onUpdate = Action.CASCADE, since = @SQLVersion({ 3, 30, 0 }) )
@SQLPrimaryKey()
private UUID alertId;
/**
* The unique id of this escalation
*/
@SQLColumn(index = 2, name = "check_id", since = @SQLVersion({ 3, 30, 0 }) )
@SQLPrimaryKey()
private UUID checkId;
/**
* When did this check get encompassed under this alert
*/
@SQLColumn(index = 3, name = "raised", since = @SQLVersion({ 3, 30, 0 }) )
private Timestamp raised;
public AlertEncompasses()
{
super();
}
public AlertEncompasses(UUID alertId, UUID checkId, Timestamp raised)
{
super();
this.alertId = alertId;
this.checkId = checkId;
this.raised = raised;
}
public UUID getAlertId()
{
return alertId;
}
public void setAlertId(UUID alertId)
{
this.alertId = alertId;
}
public UUID getCheckId()
{
return checkId;
}
public void setCheckId(UUID checkId)
{
this.checkId = checkId;
}
public Timestamp getRaised()
{
return raised;
}
public void setRaised(Timestamp raised)
{
this.raised = raised;
}
public Check<?,?> getCheck()
{
try (BergamotDB db = BergamotDB.connect())
{
return db.getCheck(this.getCheckId());
}
}
@Override
public AlertEncompassesMO toMO(Contact contact, EnumSet<com.intrbiz.bergamot.model.BergamotObject.MOFlag> options)
{
AlertEncompassesMO mo = new AlertEncompassesMO();
if (contact == null || contact.hasPermission("read", this.getCheckId())) mo.setCheck(this.getCheck().toStubMO(contact));
mo.setRaised(this.getRaised().getTime());
return mo;
}
}