<?php
namespace App\Http\Controllers;
use App\Book;
use App\TestSeries;
use App\Level;
use App\Degree;
use App\Course;
use App\Subject;
use App\Educator;
use Illuminate\Http\Request;
 use Softon\Indipay\Facades\Indipay;  
 use DB;


class HomeController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    // public function __construct()
    // {
    //     $this->middleware('auth');
    // }

    // *
    //  * Show the application dashboard.
    //  *
    //  * @return \Illuminate\Http\Response
     
    // public function index()
    // {
    //     return view('home');
    // }
    public function index()
    {
        $courses = Course::all()->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
        $randomcources = Course::where('status', '1')->inRandomOrder()->limit(10)->get();
        $educators = Educator::all()->where( 'status' , '1' );
        
        $popularcourceslist = Course::all()->where( 'popular' , 'Yes' );
         return view('user.pages.index')->withdegrees($degrees)->withCourceslist($courses)->withPopular($popularcourceslist)->withRandomcources($randomcources)->withEducators($educators);
    }
    public function facaltyregistration()
    {
        $courses = Course::all()->take(10)->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
         return view('user.pages.facalty')->withdegrees($degrees)->withCourses($courses);
    }
    public function privacypolicy()
    {
        $courses = Course::all()->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
        return view('user.pages.privacypolicy')->withdegrees($degrees)->withCourses($courses);
    }
    public function sellerspolicy()
    {
       // $hostels = Hostel::paginate(2);
         $courses = Course::all()->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
        return view('user.pages.sellerspolicy')->withdegrees($degrees)->withCourses($courses);
    }
    public function sellerfaq()
    {
       // $hostels = Hostel::paginate(2);
         $courses = Course::all()->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
        return view('user.pages.sellerfaq')->withdegrees($degrees)->withCourses($courses);
    }
    
    public function shippingpolicy()
    {
       // $hostels = Hostel::paginate(2);
         $courses = Course::all()->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
        return view('user.pages.shippingpolicy')->withdegrees($degrees)->withCourses($courses);
    }
    public function termsoffer()
    {
       // $hostels = Hostel::paginate(2);
         $courses = Course::all()->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
        return view('user.pages.termsoffer')->withdegrees($degrees)->withCourses($courses);
    }
    public function useragreement()
    {
       // $hostels = Hostel::paginate(2);
         $courses = Course::all()->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
        return view('user.pages.useragreement')->withdegrees($degrees)->withCourses($courses);
    }
    public function about()
    {
       // $hostels = Hostel::paginate(2);
         $courses = Course::all()->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
        return view('user.pages.about')->withdegrees($degrees)->withCourses($courses);
    }
    public function contact()
    {
       // $hostels = Hostel::paginate(2);
         $courses = Course::all()->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
        return view('user.pages.contact')->withdegrees($degrees)->withCourses($courses);
    }
    public function foundation($slug)
    {
        $educator = Educator::where('slug', '=', $slug)->get()->first();
        $levels = Level::all()->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
        $subjects = Subject::all()->where( 'status' , '1' );
        $educators = Educator::all()->where( 'status' , '1' );
        //echo $educator->id;
        $randomcources = Course::where('faculty_name', $educator->id)->inRandomOrder()->limit(10)->get();
        //print_r($randomcources);
       // die;
      
        $courses = Course::all()->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
        return view('user.pages.foundation')->withEducator($educator)->withdegrees($degrees)->withSubjects($subjects)->withLevels($levels)->withDegrees($degrees)->withCourses($courses)->withEducators($educators)->withRandomcources($randomcources);
    }
    public function shop()
    {
       // $hostels = Hostel::paginate(2);
         $courses = Course::all()->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
        return view('user.pages.shop')->withdegrees($degrees)->withCourses($courses);
    }

    public function course($slug)
    {

        $degreecount = Degree::where('slug', '=', $slug)->count();
        $levelcount = Level::where('slug', '=', $slug)->count();
        $subjectcount = Subject::where('slug', '=', $slug)->count();
        $educators = Educator::all()->where( 'status' , '1' );
       
        $selecteddegree = array();
        $selectedlevel = array();
        $selectedsubject = array();
        $selectdfacalty = array();
        if($degreecount>0)
        {
           // echo "degree";
            $type = "degree";
           // echo '<pre>';
            $selecteddegree = Degree::where('slug', '=', $slug)->get()->first();
            $courceslist =  Course::where('degree', '=',$selecteddegree->id)->inRandomOrder()->get();
            $testserieslist =  TestSeries::where('degree', '=',$selecteddegree->id)->get();
            $bookslist =  Book::where('degree', '=',$selecteddegree->id)->inRandomOrder()->get();
            foreach($courceslist as $value)
            {

               $selectdfacalty[] = $value->faculty_name;
            }
            
            foreach($bookslist as $value)
            {
               $selectdfacalty[] = $value->author_name;
            }
            
            $submenus = Level::where('degree', '=',$selecteddegree->id)->get();
        }
        else if($levelcount>0)
        {
            $type = "level";
           
            $selectedlevel = Level::where('slug', '=', $slug)->get()->first();
            $selecteddegree = Degree::where('id', '=', $selectedlevel->degree)->get()->first();
            $submenus = Level::where('degree', '=',$selectedlevel->degree)->get();
            $courceslist =  Course::where('level', '=',$selectedlevel->id)->inRandomOrder()->get();
            $testserieslist =  TestSeries::where('level', '=',$selectedlevel->id)->inRandomOrder()->get();
            $bookslist =  Book::where('level', '=',$selectedlevel->id)->inRandomOrder()->get();
            foreach($courceslist as $value){
               $selectdfacalty[] = $value->faculty_name;
            
            }
            foreach($bookslist as $value){
               $selectdfacalty[] = $value->author_name;
            }
        }
        else if($subjectcount>0)
        {
            $type = "subject";
            $selectedsubject = Subject::where('slug', '=',  $slug)->get()->first();
            $submenus = Level::where('degree', '=',$selectedsubject->degree)->get();

            $selecteddegree = Degree::where('id', '=', $selectedsubject->degree)->get()->first();
            $selectedlevel = Level::where('id', '=', $selectedsubject->level)->get()->first();


            $courceslist =  Course::where('subject', '=',$selectedsubject->id)->inRandomOrder()->get();
            $testserieslist =  TestSeries::where('subject', '=',$selectedsubject->id)->inRandomOrder()->get();
            $bookslist =  Book::where('subject', '=',$selectedsubject->id)->inRandomOrder()->get();
            foreach($courceslist as $value){
               $selectdfacalty[] = $value->faculty_name;
            }
            foreach($bookslist as $value){
               $selectdfacalty[] = $value->author_name;
            }
        }
        else
        {
            $type = "all";
            $submenus = Degree::all()->where( 'status' , '1' );
            $courceslist =  Course::all()->where( 'status' , '1' );
            $testserieslist =  TestSeries::all()->where( 'status' , '1' );
            $bookslist =  Book::all()->where( 'status' , '1' );
            foreach($courceslist as $value){
               $selectdfacalty[] = $value->faculty_name;
            }
            foreach($bookslist as $value){
               $selectdfacalty[] = $value->author_name;
            }
        }
        
       
        
     //  print_r($selecteditem);

        $courses = Course::all()->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
        // echo 'type';
        // echo $type;
        // echo "==================================";
        //  echo '<pre>';
        // // echo 'degree';
        //  print_r($selecteddegree);
        //   echo 'level';
        //   print_r($selectedlevel);
        //   echo $selectedlevel->name;
        //   echo $selecteddegree->name;

        //   echo 'sub';
        //   print_r($selectedsubject);
        // return view('user.pages.shop')->withdegrees($degrees)->withCourses($courses)->withSelecteditem($selecteditem)->withsubmenus($submenus);
        return view('user.pages.shop')->withdegrees($degrees)->withEducators($educators)->withCourses($courses)->withSubmenus($submenus)->withType($type)->withCourceslist($courceslist)->withTestserieslist($testserieslist)->withBookslist($bookslist)->withSelecteddegree($selecteddegree)->withSelectedlevel($selectedlevel)->withSelectedsubject($selectedsubject)->withSelectdfacalty($selectdfacalty);

    }
    public function search()
    {
        $results = array();
        $s=$_GET['s'];
        //echo "SELECT * FROM courses WHERE package_name LIKE '%$s%'";
        $results1 = DB::select( DB::raw("SELECT * FROM courses WHERE package_name LIKE '%$s%'") );
        $results2 = DB::select( DB::raw("SELECT * FROM courses WHERE degree IN( SELECT ID FROM degrees WHERE name LIKE '%$s%')") );
        $results3 = DB::select( DB::raw("SELECT * FROM courses WHERE level IN( SELECT ID FROM levels WHERE name LIKE '%$s%')") );
        $results4 = DB::select( DB::raw("SELECT * FROM courses WHERE subject IN( SELECT ID FROM subjects WHERE name LIKE '%$s%')") );
        $results5 = DB::select( DB::raw("SELECT * FROM courses WHERE faculty_name IN( SELECT ID FROM educators WHERE coaching_classes LIKE '%$s%')") );
        echo '<pre>';
        //$courses = Course::where('package_name', 'LIKE', '%".$s."%')->get();
        // print_r($results1);
        // print_r($results2);
        $results = array_merge($results1,$results2);
        $results = array_merge($results,$results3);
        $results = array_merge($results,$results4);
        $results = array_merge($results,$results5);

        $temp = array_unique(array_column($results, 'id'));
        $unique_arr = array_intersect_key($results, $temp);

        print_r($unique_arr);
        die;
    }
    public function product($slug)
    {
       // echo $slug;
        $course = Course::where('slug', '=', $slug)->get()->first();

      
        $levels = Level::all()->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
        $subjects = Subject::all()->where( 'status' , '1' );
        $educators = Educator::all()->where( 'status' , '1' );

        $relatedcources = Course::where('degree', $course->degree)->inRandomOrder()->limit(6)->get();
        // return view('user.pages.shop')->withdegrees($degrees)->withCourses($courses)->withSelecteditem($selecteditem)->withsubmenus($submenus);
         return view('user.pages.product')->withEducators($educators)->withCourse($course)->withSubjects($subjects)->withLevels($levels)->withDegrees($degrees)->withRelatedcources($relatedcources);

    }
    


}
