*/ protected $guarded = []; protected $dateFormat = false; /** * @param array $catID * @return int|Builder */ public static function addMovie(mixed $uid, mixed $imdbid, array $catID = []) // @phpstan-ignore missingType.generics { return self::query() ->insertGetId( [ 'users_id' => $uid, 'imdbid' => $imdbid, 'categories' => ! empty($catID) ? implode('|', $catID) : 'NULL', 'created_at' => now(), ] ); } /** * @return array */ public static function getMovies(mixed $uid): array { return self::query() ->where('users_id', $uid) ->leftJoin('movieinfo as mi', 'mi.imdbid', '=', 'user_movies.imdbid') ->orderBy('mi.title') ->get(['user_movies.*', 'mi.year', 'mi.plot', 'mi.cover', 'mi.title']) ->toArray(); } /** * @return mixed */ public static function delMovie(mixed $uid, mixed $imdbid) { return self::query()->where(['users_id' => $uid, 'imdbid' => $imdbid])->delete(); } /** * @return array */ public static function getMovie(mixed $uid, mixed $imdbid): array { $result = self::query() ->where(['user_movies.users_id' => $uid, 'user_movies.imdbid' => $imdbid]) ->leftJoin('movieinfo as mi', 'mi.imdbid', '=', 'user_movies.imdbid') ->first(['user_movies.*', 'mi.title']); return $result ? $result->toArray() : []; } public static function delMovieForUser(mixed $uid): void { self::query()->where('users_id', $uid)->delete(); } /** * @param array $catID */ public static function updateMovie(mixed $uid, mixed $imdbid, array $catID = []): void { self::query() ->where(['users_id' => $uid, 'imdbid' => $imdbid]) ->update(['categories' => ! empty($catID) ? implode('|', $catID) : 'NULL']); } }