/** * @param array $data * * @return Genre */ public function create(array $data = array()) { $credits = new Credits(); if (array_key_exists('media', $data)) { $credits->setMedia($this->hydrate($credits->getMedia(), $data['media'])); if (array_key_exists('seasons', $data['media'])) { $episodes = $this->getTvSeasonFactory()->createCollection($data['media']['seasons']); $credits->getMedia()->setSeasons($episodes); } if (array_key_exists('episodes', $data['media'])) { $episodes = $this->getTvEpisodeFactory()->createCollection($data['media']['episodes']); $credits->getMedia()->setEpisodes($episodes); } } if (array_key_exists('person', $data)) { $credits->setPerson($this->getPeopleFactory()->create($data['person'])); } return $this->hydrate($credits, $data); }