diff --git a/app/Models/Translation.php b/app/Models/Translation.php new file mode 100644 index 0000000..03b60dc --- /dev/null +++ b/app/Models/Translation.php @@ -0,0 +1,21 @@ +removeElementFromRemainingJobs($item->tmdb_id, ItemToFetchJobs::JOB_RELEASES); } + private function getTranslations($item) + { + $tmdbMovieTranslations = $this->moviesApi->getTranslations($item->tmdb_id); + + if (!$tmdbMovieTranslations || !isset($tmdbMovieTranslations['translations'])) { + return; + } + + $movie = Movie::where('tmdb_id', $item->tmdb_id)->first(); + + foreach ($tmdbMovieTranslations['translations'] as $tmdbTranslation) { + $existingTranslation = Translation::where('movie_id', $movie->id) + ->where('name', $tmdbTranslation['name']) + ->first(); + + if (!$existingTranslation) { + Translation::create([ + 'movie_id' => $movie->id, + 'iso_3166' => $tmdbTranslation['iso_3166_1'], + 'iso_639' => $tmdbTranslation['iso_639_1'], + 'name' => $tmdbTranslation['name'], + 'english_name' => $tmdbTranslation['english_name'], + 'homepage' => $tmdbTranslation['data']['homepage'], + 'overview' => $tmdbTranslation['data']['overview'], + 'runtime' => $tmdbTranslation['data']['runtime'], + 'tagline' => $tmdbTranslation['data']['tagline'], + 'title' => $tmdbTranslation['data']['title'], + ]); + } + } + + $this->removeElementFromRemainingJobs($item->tmdb_id, ItemToFetchJobs::JOB_TRANSLATIONS); + } + private function processMovieCollection(int $movieId, $belongsToCollection) { $movieCollection = MovieCollection::where('tmdb_id', $belongsToCollection['id'])->first(); diff --git a/database/migrations/2024_12_30_005715_create_translations_table.php b/database/migrations/2024_12_30_005715_create_translations_table.php new file mode 100644 index 0000000..bc040a2 --- /dev/null +++ b/database/migrations/2024_12_30_005715_create_translations_table.php @@ -0,0 +1,37 @@ +id(); + $table->unsignedBigInteger('movie_id'); + $table->string('iso_3166', 10); + $table->string('iso_639', 10); + $table->string('name'); + $table->string('english_name'); + $table->string('homepage', 500); + $table->text('overview'); + $table->integer('runtime'); + $table->string('tagline', 500); + $table->string('title', 500); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('translations'); + } +};