'integer', 'title' => 'string', 'name' => 'string', 'description' => 'string', 'image_uri' => 'string', 'language' => 'string', 'category' => 'string', 'explicit' => 'boolean', 'author_name' => '?string', 'author_email' => '?string', 'owner_name' => '?string', 'owner_email' => '?string', 'type' => 'string', 'copyright' => '?string', 'block' => 'boolean', 'complete' => 'boolean', 'episode_description_footer' => '?string', 'custom_html_head' => '?string', ]; public function setImage(\CodeIgniter\HTTP\Files\UploadedFile $image = null) { if ($image) { helper('media'); $this->attributes['image_uri'] = save_podcast_media( $image, $this->attributes['name'], 'cover' ); return $this; } } public function getImage() { return new \CodeIgniter\Files\File($this->getImageMediaPath()); } public function getImageMediaPath() { return media_path($this->attributes['image_uri']); } public function getImageUrl() { return media_url($this->attributes['image_uri']); } public function getLink() { return base_url(route_to('podcast_view', $this->attributes['name'])); } public function getFeedUrl() { return base_url(route_to('podcast_feed', $this->attributes['name'])); } public function getEpisodes() { $episode_model = new EpisodeModel(); return $episode_model ->where('podcast_id', $this->attributes['id']) ->findAll(); } }