image = new NullMedia(); $this->parent = new NullUnit(); } /** * Get id * * @return int * * @since 1.0.0 */ public function getId() : int { return $this->id; } /** * Get media. * * @return array * * @since 1.0.0 */ public function getFiles() : array { return $this->files; } /** * Add media. * * @param Media $file Media * * @return void * * @since 1.0.0 */ public function addFile(Media $file) : void { $this->files[] = $file; } /** * Get media file by type * * @param string $type Media type * * @return Media * * @since 1.0.0 */ public function getFileByType(string $type) : Media { foreach ($this->files as $file) { if ($file->type === $type) { return $file; } } return new NullMedia(); } /** * Get all media files by type * * @param string $type Media type * * @return Media[] * * @since 1.0.0 */ public function getFilesByType(string $type) : array { $files = []; foreach ($this->files as $file) { if ($file->type === $type) { $files[] = $file; } } return $files; } /** * Get status * * @return int * * @since 1.0.0 */ public function getStatus() : int { return $this->status; } /** * Set status * * @param int $status Status * * @return void * * @since 1.0.0 */ public function setStatus(int $status) : void { $this->status = $status; } /** * {@inheritdoc} */ public function toArray() : array { return [ 'id' => $this->id, 'name' => $this->name, 'status' => $this->status, 'description' => $this->description, 'descriptionRaw' => $this->descriptionRaw, 'parent' => $this->parent, 'image' => $this->image, ]; } /** * {@inheritdoc} */ public function jsonSerialize() { return $this->toArray(); } }