*/ protected $casts = [ 'id' => 'string', 'actor_id' => 'integer', 'target_actor_id' => '?integer', 'post_id' => '?string', 'type' => 'string', 'payload' => 'json', 'status' => '?string', ]; public function getActor(): Actor { if ($this->actor_id === null) { throw new RuntimeException('Activity must have an actor_id before getting the actor.'); } if (! $this->actor instanceof Actor) { $this->actor = model('ActorModel', false) ->getActorById($this->actor_id); } return $this->actor; } public function getTargetActor(): Actor { if ($this->target_actor_id === null) { throw new RuntimeException('Activity must have a target_actor_id before getting the target actor.'); } if (! $this->target_actor instanceof Actor) { $this->target_actor = model('ActorModel', false) ->getActorById($this->target_actor_id); } return $this->target_actor; } public function getPost(): Post { if ($this->post_id === null) { throw new RuntimeException('Activity must have a post_id before getting post.'); } if (! $this->post instanceof Post) { $this->post = model('PostModel', false) ->getPostById($this->post_id); } return $this->post; } }