Skip to content
Snippets Groups Projects
Post.php 1.37 KiB
Newer Older
  • Learn to ignore specific revisions
  • /**
     * @copyright  2020 Podlibre
     * @license    https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
     * @link       https://castopod.org/
     */
    
    namespace App\Entities;
    
    use App\Models\EpisodeModel;
    
    use Modules\Fediverse\Entities\Post as FediversePost;
    
    /**
     * @property int|null $episode_id
     * @property Episode|null $episode
     */
    
         * @var array<string, string>
    
         */
        protected $casts = [
            'id' => 'string',
            'uri' => 'string',
            'actor_id' => 'integer',
            'in_reply_to_id' => '?string',
            'reblog_of_id' => '?string',
            'episode_id' => '?integer',
            'message' => 'string',
            'message_html' => 'string',
            'favourites_count' => 'integer',
            'reblogs_count' => 'integer',
            'replies_count' => 'integer',
            'created_by' => 'integer',
        ];
    
        /**
    
         * Returns the post's attached episode
    
        public function getEpisode(): ?Episode
    
            if ($this->episode_id === null) {
    
                throw new RuntimeException('Post must have an episode_id before getting episode.');
    
            if (! $this->episode instanceof Episode) {
    
                $this->episode = (new EpisodeModel())->getEpisodeById($this->episode_id);