public function archive()
{
if (!$this->getId()) {
throw new RecordNotLoaded("Can't archive a not loaded DataModel");
}
if (!$this->hasField('enabled')) {
return $this;
}
$this->triggerEvent('onBeforeArchive', array());
$enabled = $this->getFieldAlias('enabled');
$this->{$enabled} = 2;
$this->save();
$this->triggerEvent('onAfterArchive');
return $this;
}