t('Redundancy Group Failed'), 'is_reachable' => t('Redundancy Group Is Reachable'), 'last_state_change' => t('Redundancy Group Last State Change') ]; } public function createBehaviors(Behaviors $behaviors): void { $behaviors->add(new Binary([ 'id', 'environment_id', 'redundancy_group_id' ])); $behaviors->add(new BoolCast([ 'failed', 'is_reachable' ])); $behaviors->add(new MillisecondTimestamp([ 'last_state_change' ])); } public function createRelations(Relations $relations): void { $relations->belongsTo('redundancy_group', RedundancyGroup::class); } /** * Get the state text for the redundancy group state * * Do not use this method to label the state of a redundancy group. * * @return string */ public function getStateText(): string { return $this->failed ? 'critical' : 'ok'; } /** * Get the state icon * * @return ?Icon */ public function getIcon(): ?Icon { if (! $this->is_reachable) { return new Icon(Icons::UNREACHABLE); } return null; } }