initial commit
This commit is contained in:
commit
0c42bef077
109 changed files with 16545 additions and 0 deletions
8
app/Models/Interfaces/MovieDbInterface.php
Normal file
8
app/Models/Interfaces/MovieDbInterface.php
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models\Interfaces;
|
||||
|
||||
interface MovieDbInterface
|
||||
{
|
||||
public function search(string $query, array $options);
|
||||
}
|
||||
47
app/Models/Movie.php
Normal file
47
app/Models/Movie.php
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||
|
||||
class Movie extends Model
|
||||
{
|
||||
protected $fillable = [
|
||||
'title',
|
||||
'imdb_id',
|
||||
'year',
|
||||
'director',
|
||||
'actors',
|
||||
'plot',
|
||||
'genre',
|
||||
'mpaa_rating',
|
||||
'critic_scores',
|
||||
'poster',
|
||||
'added_by',
|
||||
];
|
||||
|
||||
public static function fromOmdb(array $omdb): self
|
||||
{
|
||||
$attributes = [
|
||||
'title' => $omdb['Title'],
|
||||
'imdb_id' => $omdb['imdbID'],
|
||||
'year' => $omdb['Year'],
|
||||
'director' => $omdb['Director'],
|
||||
'actors' => $omdb['Actors'],
|
||||
'plot' => $omdb['Plot'],
|
||||
'genre' => $omdb['Genre'],
|
||||
'mpaa_rating' => $omdb['Rated'],
|
||||
'critic_scores' => json_encode($omdb['Ratings']),
|
||||
'poster' => $omdb['Poster'],
|
||||
'added_by' => $omdb['added_by'],
|
||||
];
|
||||
|
||||
return static::create($attributes);
|
||||
}
|
||||
|
||||
public function movieLists(): belongsToMany
|
||||
{
|
||||
return $this->belongsToMany(MovieList::class);
|
||||
}
|
||||
}
|
||||
21
app/Models/MovieList.php
Normal file
21
app/Models/MovieList.php
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
|
||||
class MovieList extends Model
|
||||
{
|
||||
protected $fillable = [
|
||||
'user_id',
|
||||
'name',
|
||||
'is_public'
|
||||
];
|
||||
|
||||
public function movies(): BelongsToMany
|
||||
{
|
||||
return $this->belongsToMany(Movie::class);
|
||||
}
|
||||
}
|
||||
10
app/Models/Schedule.php
Normal file
10
app/Models/Schedule.php
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Schedule extends Model
|
||||
{
|
||||
//
|
||||
}
|
||||
10
app/Models/Showing.php
Normal file
10
app/Models/Showing.php
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Showing extends Model
|
||||
{
|
||||
//
|
||||
}
|
||||
71
app/Models/User.php
Normal file
71
app/Models/User.php
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
// use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||
use Database\Factories\UserFactory;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Relations\HasOne;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use Illuminate\Support\Str;
|
||||
use Laravel\Fortify\TwoFactorAuthenticatable;
|
||||
|
||||
class User extends Authenticatable
|
||||
{
|
||||
/** @use HasFactory<UserFactory> */
|
||||
use HasFactory, Notifiable, TwoFactorAuthenticatable;
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*
|
||||
* @var list<string>
|
||||
*/
|
||||
protected $fillable = [
|
||||
'username',
|
||||
'email',
|
||||
'password',
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes that should be hidden for serialization.
|
||||
*
|
||||
* @var list<string>
|
||||
*/
|
||||
protected $hidden = [
|
||||
'password',
|
||||
'two_factor_secret',
|
||||
'two_factor_recovery_codes',
|
||||
'remember_token',
|
||||
];
|
||||
|
||||
public function profile(): HasOne
|
||||
{
|
||||
return $this->hasOne(UserProfile::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the user's initials
|
||||
*/
|
||||
//public function initials(): string
|
||||
//{
|
||||
// return Str::of($this->name)
|
||||
// ->explode(' ')
|
||||
// ->take(2)
|
||||
// ->map(fn($word) => Str::substr($word, 0, 1))
|
||||
// ->implode('');
|
||||
//}
|
||||
|
||||
/**
|
||||
* Get the attributes that should be cast.
|
||||
*
|
||||
* @return array<string, string>
|
||||
*/
|
||||
protected function casts(): array
|
||||
{
|
||||
return [
|
||||
'email_verified_at' => 'datetime',
|
||||
'password' => 'hashed',
|
||||
];
|
||||
}
|
||||
}
|
||||
22
app/Models/UserProfile.php
Normal file
22
app/Models/UserProfile.php
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
class UserProfile extends Model
|
||||
{
|
||||
protected $fillable = [
|
||||
"user_id",
|
||||
"first_name",
|
||||
"last_name",
|
||||
"location",
|
||||
"date_of_birth",
|
||||
];
|
||||
|
||||
public function user(): BelongsTo
|
||||
{
|
||||
return $this->belongsTo(User::class);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue