HEX
Server: LiteSpeed
System: Linux s3.sitechai.com 4.18.0-553.51.1.lve.1.el8.x86_64 #1 SMP Wed May 14 14:34:57 UTC 2025 x86_64
User: workzeni (2217)
PHP: 8.1.32
Disabled: mail, show_source, system, shell_exec, passthru, exec, eval, shell
Upload Files
File: /home/workzeni/stream-flix.workzenix.com/app/Http/Controllers/Website/WebsiteController.php
<?php

namespace App\Http\Controllers\Website;

use App\Http\Controllers\Controller;
use App\Models\Category;
use App\Models\Movie;
use Illuminate\Http\Request;

class WebsiteController extends Controller
{
    public function search(Request $request)
    {
        $query = $request->get('q', '');

        if (empty($query)) {
            return response()->json(['movies' => []]);
        }

        $movies = Movie::with(['category', 'language'])
            ->where('name', 'like', "%{$query}%")
            ->orWhere('year', 'like', "%{$query}%")
            ->orWhereHas('category', function ($q) use ($query) {
                $q->where('name', 'like', "%{$query}%");
            })
            ->orWhereHas('language', function ($q) use ($query) {
                $q->where('name', 'like', "%{$query}%");
            })
            ->select('id', 'name', 'thumbnail_image', 'year', 'duration', 'rating')
            ->take(15)
            ->get()
            ->map(function ($movie) {
                return [
                    'id' => $movie->id,
                    'title' => $movie->name,
                    'poster' => asset('uploads/thumbnail/' . $movie->thumbnail_image),
                    'year' => $movie->year,
                    'duration' => $movie->duration,
                    'rating' => $movie->rating,
                    'genre' => [$movie->category->name ?? 'Unknown'],
                    'languages' => [$movie->language->name ?? 'Unknown'],
                ];
            });

        return response()->json(['movies' => $movies]);
    }

    public function index()
    {
        $heroBanner = Movie::where('status', 'active')->latest()->take(5)->get();
        $popularMovies = Movie::where('status', 'active')->orderBy('views', 'desc')->take(10)->get();
        $newMovies = Movie::where('status', 'active')->latest()->take(10)->get();
        $movies = Movie::where('status', 'active')->latest()->get();
        return view('website.pages.home.index', compact('heroBanner', 'popularMovies', 'newMovies', 'movies'));
    }

    public function category($slug)
    {
        $category = Category::where('slug', $slug)->firstOrFail();
        $movie = Movie::where('category_id', $category->id)->orderBy('id', 'desc')->get();
        return view('website.pages.cetagory.index');
    }

    public function watch($code)
    {
        $movie = Movie::where('code', $code)->firstOrFail();
        $viewedMovies = session()->get('viewed_movies', []);
        if (!in_array($movie->id, $viewedMovies)) {
            $movie->increment('views');
            $viewedMovies[] = $movie->id;
            session(['viewed_movies' => $viewedMovies]);
        }

        $upNext = Movie::where('category_id', $movie->category_id)
            ->where('id', '!=', $movie->id)
            ->orderBy('id', 'asc')
            ->first();

        $moreLikeThis = Movie::where('category_id', $movie->category_id)
            ->where('id', '!=', $movie->id)
            ->take(5)
            ->get();

        $popularMovies = Movie::where('language_id', $movie->language_id)
            ->orderBy('views', 'desc')
            ->take(5)
            ->get();
        return view('website.pages.watch.index', compact('movie', 'upNext', 'moreLikeThis', 'popularMovies'));
    }
}