some progress

This commit is contained in:
2024-12-30 01:51:28 +02:00
parent 71701e19bf
commit 7436b95f15
53 changed files with 5610 additions and 180 deletions
+22
View File
@@ -0,0 +1,22 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Genre extends Model
{
public const TYPE_MOVIE = 'movie';
public const TYPE_SHOW = 'show';
protected $fillable = [
'name',
'slug',
'tmdb_id',
'type',
];
public function movies() {
return $this->belongsToMany(Movie::class, 'movie_genres', 'genre_id', 'movie_id');
}
}
+23
View File
@@ -0,0 +1,23 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ItemToFetch extends Model
{
public const TYPE_MOVIE = 'movie';
public const TYPE_TV_SERIES = 'tv_series';
protected $table = 'items_to_fetch';
protected $fillable = [
'tmdb_id',
'type',
];
public function jobs()
{
return $this->hasOne(ItemToFetchJobs::class, 'tmdb_id', 'tmdb_id');
}
}
+55
View File
@@ -0,0 +1,55 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ItemToFetchJobs extends Model
{
public const JOB_ALTERNVATIVE_TITLES = 'AlternativeTitles';
public const JOB_CREDITS = 'Credits';
public const JOB_IMAGES = 'Images';
public const JOB_KEYWORDS = 'Keywords';
public const JOB_RELEASES = 'Releases';
public const JOB_TRANSLATIONS = 'Translations';
public const JOB_SIMILAR = 'Similar';
public const JOB_RECOMMNDATION = 'Recommendations';
public const JOB_REVIEWS = 'Reviews';
public const JOB_LISTS = 'Lists';
public const JOB_CHANGES = 'Changes';
public const JOB_VIDEOS = 'Videos';
public const JOB_WATCH_PROVIDERS = 'WatchProviders';
public const JOB_EXTERNAL_IDS = 'ExternalIds';
public const JOB_DETAILS = 'Details';
public const JOBS = [
self::JOB_ALTERNVATIVE_TITLES,
self::JOB_CREDITS,
self::JOB_IMAGES,
self::JOB_KEYWORDS,
self::JOB_RELEASES,
self::JOB_TRANSLATIONS,
self::JOB_SIMILAR,
self::JOB_RECOMMNDATION,
self::JOB_REVIEWS,
self::JOB_LISTS,
self::JOB_CHANGES,
self::JOB_VIDEOS,
self::JOB_WATCH_PROVIDERS,
self::JOB_EXTERNAL_IDS,
];
protected $fillable = [
'tmdb_id',
'item_id',
'type',
'remaining_jobs',
];
protected function casts(): array
{
return [
'remaining_jobs' => 'array',
];
}
}
+40
View File
@@ -0,0 +1,40 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Movie extends Model
{
protected $fillable = [
'tmdb_id',
'adult',
'runtime',
'backdrop_path',
'budget',
'revenue',
'homepage',
'imdb_id',
'status',
'original_language',
'original_title',
'title',
'slug',
'overview',
'tagline',
'poster_path',
'release_date',
'vote_average',
'vote_count',
];
public function collections()
{
return $this->belongsToMany(MovieCollection::class, 'movies_in_collection', 'movie_id', 'collection_id');
}
public function genres()
{
return $this->belongsToMany(Genre::class, 'movie_genres', 'movie_id', 'genre_id');
}
}
+20
View File
@@ -0,0 +1,20 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class MovieCollection extends Model
{
protected $fillable = [
'name',
'slug',
'poster_path',
'backdrop_path',
'tmdb_id',
];
public function movies() {
return $this->belongsToMany(Movie::class, 'movies_in_collection', 'collection_id', 'movie_id');
}
}
+35
View File
@@ -0,0 +1,35 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Show extends Model
{
protected $fillable = [
'adult',
'backdrop_path',
'episode_run_time',
'first_air_date',
'homepage',
'tmdb_id',
'in_production',
'languages',
'last_air_date',
'name',
'slug',
'number_of_episodes',
'number_of_seasons',
'origin_country',
'original_language',
'original_name',
'overview',
'popularity',
'poster_path',
'status',
'tagline',
'type',
'vote_average',
'vote_count',
];
}