File "MembershipController.php"

Full Path: /home/fundopuh/trader.fxex.org/app/Http/Controllers/User/MembershipController.php
File size: 4.09 KB
MIME-type: text/x-php
Charset: utf-8

<?php  
// this Code is Cracked by dharunMods-YouTube-Channel

namespace App\Http\Controllers\User;

use App\Http\Controllers\Controller;
use App\Models\Course;
use App\Models\Lesson;
use App\Models\CourseUser;
use App\Models\Settings;
use App\Models\Tp_Transaction;
use App\Models\User;
use App\Notifications\AccountNotification;
use App\Traits\TemplateTrait;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class MembershipController extends Controller
{
    use TemplateTrait;

    public function courses()
    {
        $settings = Settings::select('theme')->find(1);

        return view("{$settings->theme}.user.membership.courses", [
            'title' => 'Courses',
            'courses' => Course::with('lessons')->get(),
        ]);
    }

    public function courseDetails(string $course, string $id)
{
    $settings = Settings::select('theme')->find(1);

    // Assuming you have a relationship to fetch lessons and category
    $course = Course::with('lessons', 'category')->findOrFail($id);

    // Fetching users who purchased the course
    $usersWhoPurchased = $course->users()->select('users.id')->pluck('id')->toArray();

    return view("{$settings->theme}.user.membership.courseDetails", [
        'title' => 'Course Details',
        'course' => $course,
        'lessons' => $course->lessons,
        'whoPurchased' => $usersWhoPurchased,
    ]);
}


public function myCoursesDetails($courseId)
{
    $settings = Settings::select('theme')->find(1);
    $course = Course::with('lessons')->findOrFail($courseId);

    // Retrieve the users who purchased the course along with the purchase date
    $usersWhoPurchased = CourseUser::where('course_id', $courseId)
                                    ->with('user')
                                    ->get();

    return view("{$settings->theme}.user.membership.mycourse-details", [
        'title' => 'Course Details',
        'course' => $course,
        'lessons' => $course->lessons,
        'whoPurchased' => $usersWhoPurchased,
    ]);
}


    public function myCourses()
    {
        $settings = Settings::select('theme')->find(1);
        $user = Auth::user();
        $courses = $user->courses;

        return view("{$settings->theme}.user.membership.my-course", [
            'title' => 'My Courses',
            'courses' => $courses,
        ]);
    }

    public function learning($lessonId, $courseId = null)
    {
        $settings = Settings::select('theme')->find(1);
        $lesson = Lesson::findOrFail($lessonId);
        $course = $courseId ? Course::with('lessons')->findOrFail($courseId) : null;

        return view("{$settings->theme}.user.membership.watchlesson", [
            'course' => $course,
            'lesson' => $lesson,
            'title' => 'Watch Lesson',
            'next' => $lesson->nextLesson(),
            'previous' => $lesson->previousLesson(),
        ]);
    }

    public function buyCourse(Request $request)
    {
        $user = User::find(Auth::user()->id);
        $course = Course::findOrFail($request->course);

        $amount = $course->amount ?? 0;

        if ($user->courses->contains($course)) {
            return redirect()->back()->with('message', 'You have already purchased this course. You can view it on the My Courses page.');
        }

        if ($user->account_bal < $amount) {
            return redirect()->back()->with('message', 'You have insufficient funds in your account balance to make this purchase. Please make a deposit.');
        }

        $user->account_bal = $user->account_bal - $amount;
        $user->courses()->attach($course->id);
        $user->save();

        $user->notify(new AccountNotification("Your course purchase is successful.", 'Purchase Course'));

        //create history
        Tp_Transaction::create([
            'user' => $user->id,
            'plan' => "Purchase Course",
            'amount' => $amount,
            'type' => "Education",
        ]);

        return redirect()->back()->with('success', 'Course purchased successfully.');
    }
}