<?php

namespace App\Http\Controllers\Admin;

use Carbon\Carbon;
use Faker\Factory;
use App\Models\User;
use App\Models\Company;
use App\Models\TeamSize;
use Illuminate\Support\Str;
use App\Models\IndustryType;
use Illuminate\Http\Request;
use App\Models\OrganizationType;
use App\Http\Controllers\Controller;
use Modules\Location\Entities\Country;
use Illuminate\Support\Facades\Notification;
use App\Http\Requests\UniversityCreateFormRequest;
use App\Http\Requests\UniversityUpdateFormRequest;
use App\Models\Job;
use App\Models\Setting;
use App\Notifications\CompanyCreateApprovalPendingNotification;
use App\Notifications\CompanyCreatedNotification;
use App\Notifications\UpdateCompanyPassNotification;
use App\Models\Universities;
use App\Models\University;
use App\Models\Countries;
use App\Models\City;
use App\Models\State;
use App\Models\Faq;
use Illuminate\Support\Facades\DB;
// use Modules\Faq\Entities\Faq;

use Illuminate\Support\Facades\Storage;

class UniversityController extends Controller
{
    public function index(Request $request)
    {
        abort_if(!userCan('university.view'), 403);

        $querys = Universities::query();
        if ($request->keyword && $request->keyword != null) {

            $querys->where('name', 'LIKE', "%$request->keyword%")
                ->orWhere('email', 'LIKE', "%$request->keyword%");
        }

        // countries_type
        if ($request->countries_type && $request->countries_type != null) {
            $querys->where('country_id', $request->countries_type);
        }

        if ($request->robot_type && $request->robot_type != null) {
            $querys->where('robots', $request->robot_type);
        }

        

        // $querys->orderBy('sorting', 'DESC');
        // $querys->orderByRaw("CASE WHEN sorting IS NULL THEN 1 ELSE 0 END, sorting");


        $universities =  $querys->sorting()->paginate(10);

        $query = Company::query();

        // sortby
        if ($request->sort_by == 'latest' || $request->sort_by == null) {
            $query->latest();
        } else {
            $query->oldest();
        }

        // verified status
        if ($request->has('ev_status') && $request->ev_status != null) {
            $ev_status = null;
            if ($request->ev_status == 'true') {
                $query->whereHas('user', function ($q) use ($ev_status) {
                    $q->whereNotNull('email_verified_at');
                });
            } else {
                $query->whereHas('user', function ($q) use ($ev_status) {
                    $q->whereNull('email_verified_at');
                });
            }
        }



        // organization_type
        if ($request->organization_type && $request->organization_type != null) {
            $query->whereHas('organization', function ($q) use ($request) {
                $q->where('slug', $request->organization_type);
            });
        }

        // organization_type
        if ($request->industry_type && $request->industry_type != null) {
            $query->where('industry_type_id', $request->industry_type);
        }

        $companies = $query->with('organization:id,name', 'user')->paginate(10)->through(function ($company) {
            $company->active_jobs = Job::where('company_id', $company->id)->openPosition()->count();
            return $company;
        });

        $industry_types = IndustryType::all();
        $organization_types = OrganizationType::all();
        $countries_types = Countries::all();

        // return view('admin.university.index', compact('companies', 'industry_types', 'organization_types'));
        return view('admin.university.index', compact('universities', 'companies', 'industry_types', 'organization_types', 'countries_types'));
    }

    public function create()
    {
        abort_if(!userCan('university.create'), 403);

        $data['countries'] = Countries::all();
        $data['industry_types'] = IndustryType::all();
        $data['organization_types'] = OrganizationType::all();
        $data['team_sizes'] = TeamSize::all();

        return view('admin.university.create', $data);
    }

    public function store(UniversityCreateFormRequest $request)
    {
        // dd($request->all());
        abort_if(!userCan('university.create'), 403);
        try {
            $folder = '/university/' . $request['url'];
            $file_logo = ($request->file('logo')) ? $request->file('logo') : NULL;
            $file_university_icon = ($request->file('university_icon')) ? $request->file('university_icon') : NULL;
            $file_brochure = ($request->file('brochure')) ? $request->file('brochure') : NULL;

            $file_headerImageDesktop = ($request->file('headerImageDesktop')) ? $request->file('headerImageDesktop') : NULL;
            $file_headerImageMobile = ($request->file('headerImageMobile')) ? $request->file('headerImageMobile') : NULL;


            $meta_description = (!empty($request['meta_description'])) ? $request['meta_description'] : null;
            // // $images = (!empty($request->img)) ? $request->img : null;
            // if (!empty(isset($request['headerImageDesktop']))) {
            //     $file_headerImageDesktop = $request->file('headerImageDesktop');
            // }
            // if (!empty(isset($request['headerImageMobile']))) {
            //     $file_headerImageMobile = $request->file('headerImageMobile');
            // }


            $images = $request->img;
            $img = [];
            if(!empty($images)){

                foreach ($images as $key => $imageData) {
                    if ($imageData['mediaUrl']) {
                        $image = $imageData['mediaUrl'];
                        $path_img = Storage::disk('public')->put($folder, $image);
                        $img[$key]['mediaUrl'] = $path_img;
                     

                    }
                    $img[$key]['mediaTitle'] = !empty($imageData['mediaTitles']) ? $imageData['mediaTitles'] : "_images";
                    $img[$key]['altText'] = !empty($imageData['altTexts']) ? $imageData['altTexts'] : "images";
                    $img[$key]['status'] = !empty($imageData['status'])  ? $imageData['status'] : 0;
                }
                $imagejson = json_encode($img);
            }
            else{
                $imagejson = null;
            }
        
            if (!empty($file_logo) || $file_logo != null) {
                $path_logo = Storage::disk('public')->put($folder, $file_logo);
            }
            if (!empty($file_university_icon) || $file_university_icon != null) {
                $path_university_icon = Storage::disk('public')->put($folder, $file_university_icon);
            }
            if (!empty($file_brochure) || $file_brochure != null) {
                $path_brochure = Storage::disk('public')->put($folder, $file_brochure);
            }
            if (!empty($file_headerImageDesktop) || $file_headerImageDesktop != null) {
                $path_headerImageDesktop = Storage::disk('public')->put($folder, $file_headerImageDesktop);
            }
            if (!empty($file_headerImageMobile) || $file_headerImageMobile != null) {
                $path_headerImageMobile = Storage::disk('public')->put($folder, $file_headerImageMobile);
            }

            $req = $request->all();
            $req['social_media'] = '';
            $req['logo'] = isset($path_logo)?$path_logo:'';
            $req['university_icon'] = isset($path_university_icon)?$path_university_icon:'';
            $req['brochure'] = isset($path_brochure)?$path_brochure:'';
            $req['headerImageDesktop'] = isset($path_headerImageDesktop)?$path_headerImageDesktop:'';
            $req['headerImageMobile'] = isset($path_headerImageMobile)?$path_headerImageMobile:'';
            $req['meta_description'] = $meta_description;
            $req['images'] = $imagejson;

            $req['data_source_id'] = 1;
            $req['sid'] = 1;
            $req['city_id'] = $request->city_id;
            $req['created_by'] = Auth()->user()->id;

            $on_campus_accommodation = [];
            $on_campus_accommodation['details'] = (!empty($request['on_campus_accommodation'])) ? $request['on_campus_accommodation'] : null;
            $on_campus_accommodation['website'] = (!empty($request['on_campus_accommodation_website'])) ? $request['on_campus_accommodation_website'] : null;
            $on_campus_accommodation['livingExpenseDetails'] = (!empty($request['on_campus_accommodation_livingExpenseDetails'])) ? $request['on_campus_accommodation_livingExpenseDetails'] : null;
            $on_campus_accommodation['livingExpenseUrl'] = (!empty($request['on_campus_accommodation_livingExpenseUrl'])) ? $request['on_campus_accommodation_livingExpenseUrl'] : null;
            $on_campus_accommodation['ugDescription'] = (!empty($request['on_campus_accommodation_ugDescription'])) ? $request['on_campus_accommodation_ugDescription'] : null;
            $on_campus_accommodation['pgDescription'] = (!empty($request['on_campus_accommodation_pgDescription'])) ? $request['on_campus_accommodation_pgDescription'] : null;
            // if (!empty($on_campus_accommodation)) {
            $req['on_campus_accommodation'] = json_encode($on_campus_accommodation);
            // }

            $off_campus_accommodation = [];
            $off_campus_accommodation['description'] = (!empty($request['off_campus_accommodation'])) ? $request['off_campus_accommodation'] : null;
            $off_campus_accommodation['links'] = (!empty($request['off_campus_accommodation_links'])) ? $request['off_campus_accommodation_links'] : null;

            if (!empty($off_campus_accommodation['links'])) {
                foreach ($off_campus_accommodation['links'] as $key => $link) {
                    $off_campus_accommodation['links'][$key] = (!empty($link)) ? $link : null;
                }
            }

            // if (!empty($off_campus_accommodation)) {
            $req['off_campus_accommodation'] = json_encode($off_campus_accommodation);
            // }


            if (!empty($request['videos']) && !empty($request['videos'][0])) {
                foreach ($request['videos'] as $video) {
                    $newVideoUrl = str_replace('watch?v=', 'embed/', $video);
                    if (is_string($newVideoUrl)) {  // Check if $video is a string
                        $videos['mediaUrl'] = $newVideoUrl;
                        $videos['mediaTitle'] = "_video";
                        $videos['altText'] = 'images';
                        $videoKeyArray = explode('/', $newVideoUrl);
                        $videos['videoKey'] = end($videoKeyArray);
                        $videos['thumbUrl'] = ' https://i.ytimg.com/vi/' . end($videoKeyArray) . '/hqdefault.jpg';
                        $finalArr[] = $videos;
                    }
                }
                $req['videos'] = json_encode($finalArr);
                unset($req['social_media']);
            } else {
                unset($req['videos']);
                unset($req['social_media']);
            }



            // dd($request->input('study_point'));
            if (!empty($request->input('study_point'))) {
                $studyPoints = [];  
                foreach ($request->input('study_point') as $studyPointData) {
                   
                    $studyPoint = [];
                    $studyPoint['header'] = !empty($studyPointData['header']) ? $studyPointData['header'] : NULL;
                    $studyPoint['content'] = !empty($studyPointData['content']) ? $studyPointData['content'] : NULL;
                    $studyPoints[] = $studyPoint;
                }

                $req['study_points'] = json_encode($studyPoints);
            }


            if (!empty($request->input('overview_service_block'))) {
                $overview_service_blocks = [];  
                foreach ($request->input('overview_service_block') as $overviewServiceBlockData) {
                   
                    $overview_service_block = [];
                    $overview_service_block['header'] = !empty($overviewServiceBlockData['header']) ? $overviewServiceBlockData['header'] : NULL;
                    $overview_service_block['content'] = !empty($overviewServiceBlockData['content']) ? $overviewServiceBlockData['content'] : NULL;
                    $overview_service_blocks[] = $overview_service_block;
                }

                $req['overview_service_blocks'] = json_encode($overview_service_blocks);
            }

            // $request['images']='';
            // $request['videos']='';
           





            // if(!empty($request['videos']) && !empty($request['videos'][0])){

            //     foreach($request['videos'] as $video){
            //         $videos['mediaUrl']=$video;
            //         $videos['mediaTitle']="_video";
            //         $videos['altText']='images';
            //         $videos['videoKey']=end(explode('/',$video));
            //         $videos['thumbUrl']=' https://i.ytimg.com/vi/'.end(explode('/',$video)).'/hqdefault.jpg';
            //         $finalArr[]=$videos;
            //     }
            //     $request['videos']=json_encode($finalArr);
            // }else{
            //     unset($request['videos']);
            //     unset($request['social_media']);
            // }



            // if (!empty($request['videos']) && !empty($request['videos'][0])) {
            //     foreach ($request['videos'] as $video) {
            //         $newVideoUrl = str_replace('watch?v=', 'embed/', $video);
            //         if (is_string($newVideoUrl)) {  // Check if $video is a string
            //             $videos['mediaUrl'] = $newVideoUrl;
            //             $videos['mediaTitle'] = "_video";
            //             $videos['altText'] = 'images';
            //             $videoKeyArray = explode('/', $newVideoUrl);
            //             $videos['videoKey'] = end($videoKeyArray);
            //             $videos['thumbUrl'] = ' https://i.ytimg.com/vi/' . end($videoKeyArray) . '/hqdefault.jpg';
            //             $finalArr[] = $videos;
            //         }
            //     }
            //     $request['videos'] = json_encode($finalArr);
            //     unset($request['social_media']);
            // } else {
            //     unset($request['videos']);
            //     unset($request['social_media']);
            // }


            if (!empty($request['admission_dates'])) {
                $admission_dates_dateTime = Carbon::parse($request['admission_dates']);
                $req['admission_dates'] = $admission_dates_dateTime->format('Y-m-d H:i:s');
            }
 
            $universities = Universities::create($req);
            if ($universities->id) {
                // city save
                $cities = City::find($request->city_id);
                $cities->overview = $request['city_overview'];
                $cities->accmmidation = $request['city_accmmidation'];
                $cities->meals = $request['city_meals'];
                $cities->earings = $request['city_earings'];
                $cities->local_travel = $request['city_local_travel'];
                $cities->save();
                flashSuccess(__('university_created_successfully'));
                // $universities->cities()->create($cities);
                return redirect()->route('university.index');
            }
        } catch (\Throwable $th) {
            return redirect()->back()->with('error', config('app.debug') ? $th->getMessage() : 'Something went wrong');
        }
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        abort_if(!userCan('university.view'), 403);

        $universities = Universities::findOrFail($id);

        return view('admin.university.show', compact('universities'));
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        abort_if(!userCan('university.update'), 403);

        $data['universities'] = Universities::findOrFail($id);
        $data['countries'] = Countries::all();
        $country_url = Countries::select('url')->where('id', $data['universities']->country_id)->first();
        $data['country_url'] = null;
        if(!empty($country_url->url)){
            $data['country_url'] =  $country_url->url;
        }

        $find_state_id = null;
        if (!empty($data['universities']->city_id)) {
            $find_state_id = City::where("id", $data['universities']->city_id)->pluck('state_id')->first();
        }

        $data['states'] = State::where("country_id", $data['universities']->country_id)->get();
        $data['citys'] = City::where("id", $data['universities']->city_id)->get();
        $data['find_state_id'] = $find_state_id;
        return view('admin.university.edit', $data);
    }

    public function update(UniversityUpdateFormRequest $request, Universities $university)
    {

        abort_if(!userCan('university.update'), 403);
        $existingImages = !empty($university['images']) ? json_decode($university['images'], true) : [];
        $folder = '/university/' . $request['url'];
        try {
            
            if (!empty($request->input('newImgs'))) {
                $existingImages = [];
                foreach ($request->input('newImgs') as $newImageData) {
                    $newMediaUrlParts = explode('/', $newImageData['mediaUrl']);
                    $newFilename = end($newMediaUrlParts);
                    $newimg = [];
                    $newimg['mediaUrl'] = $folder . '/' . $newFilename;
                    $newimg['mediaTitle'] = !empty($newImageData['mediaTitle']) ? $newImageData['mediaTitle'] : "_images";
                    $newimg['altText'] = !empty($newImageData['altText']) ? $newImageData['altText'] : "images";
                    $newimg['overview_img'] = !empty($newImageData['overview_img'])  ? $newImageData['overview_img'] : 0;
                    $newimg['study_img'] = !empty($newImageData['study_img'])  ? $newImageData['study_img'] : 0;
                    $newimg['university_img'] = !empty($newImageData['university_img'])  ? $newImageData['university_img'] : 0;
                    
                    $existingImages[] = $newimg;
                }

                $university['images'] = json_encode($existingImages);
            }
            
            if (!empty($request->input('study_point'))) {
                $studyPoints = [];  
                foreach ($request->input('study_point') as $studyPointData) {
                   
                    $studyPoint = [];
                    $studyPoint['header'] = !empty($studyPointData['header']) ? $studyPointData['header'] : NULL;
                    $studyPoint['content'] = !empty($studyPointData['content']) ? $studyPointData['content'] : NULL;
                    $studyPoints[] = $studyPoint;
                }

                $university['study_points'] = json_encode($studyPoints);
            }

            if (!empty($request->input('overview_service_block'))) {
                $overview_service_blocks = [];
                foreach ($request->input('overview_service_block') as $overviewServiceBlockData) {
                   
                    $overview_service_block = [];
                    $overview_service_block['header'] = !empty($overviewServiceBlockData['header']) ? $overviewServiceBlockData['header'] : NULL;
                    $overview_service_block['content'] = !empty($overviewServiceBlockData['content']) ? $overviewServiceBlockData['content'] : NULL;
                    $overview_service_blocks[] = $overview_service_block;
                }

                $university['overview_service_blocks'] = json_encode($overview_service_blocks);
            }

    


            if (!empty($request->input('img'))) {

                foreach ($request->input('img') as $imageData) {
                    if (isset($imageData['mediaUrl'])) {
                        $mediaUrl = $imageData['mediaUrl'];
                      
                        if (is_string($mediaUrl)) {
                            $fileContent = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $mediaUrl));
                            // Generate a unique filename
                            $filename = time() . '_' . uniqid() . '.png';
                            // Determine the file path
                            // $filePath = public_path($folder. '/' .$filename);
                            $filePath = $folder . '/' . $filename;
                            // Write the file content to the specified path
                            // $result = file_put_contents($filePath, $fileContent);
                            $result = Storage::disk('public')->put($filePath, $fileContent);
                            if ($result !== false) {
                                $img = [];
                                $img['mediaUrl'] = $folder . '/' . $filename;
                                $img['mediaTitle'] = !empty($imageData['mediaTitles']) ? $imageData['mediaTitles'] : "_images";
                                $img['altText'] = !empty($imageData['altTexts']) ? $imageData['altTexts'] : "images";
                                $img['status'] = !empty($imageData['status'])  ? $imageData['status'] : 0;
                                $img['overview_img'] = !empty($imageData['overview_img'])  ? $imageData['overview_img'] : 0;
                                $img['study_img'] = !empty($imageData['study_img'])  ? $imageData['study_img'] : 0;
                                $img['university_img'] = !empty($imageData['university_img'])  ? $imageData['university_img'] : 0;
                                $existingImages[] = $img;
                               
                            }

                        
                        }
                    }
                }

                $university['images'] = json_encode($existingImages);
            }



            $file_logo = ($request->file('logo')) ? $request->file('logo') : NULL;
            $file_study_point_image = ($request->file('study_point_image')) ? $request->file('study_point_image') : NULL;
            $file_university_icon = ($request->file('university_icon')) ? $request->file('university_icon') : NULL;
            $file_brochure = ($request->file('brochure')) ? $request->file('brochure') : NULL;

            if (!empty(isset($request['headerImageDesktop']))) {
                $file_headerImageDesktop = $request->file('headerImageDesktop');
            }
            if (!empty(isset($request['headerImageMobile']))) {
                $file_headerImageMobile = $request->file('headerImageMobile');
            }

            $request = $request->all();

            if (!empty($file_logo)) {
                if ($university['logo'] && Storage::disk('public')->exists($university['logo'])) {
                    Storage::disk('public')->delete($university['logo']);
                }
                $path_logo = Storage::disk('public')->put($folder, $file_logo);
                $university['logo'] = $path_logo;
            }

            if (!empty($file_study_point_image)) {
                if ($university['study_point_image'] && Storage::disk('public')->exists($university['study_point_image'])) {
                    Storage::disk('public')->delete($university['study_point_image']);
                }
                $path_study_point_image = Storage::disk('public')->put($folder, $file_study_point_image);
                $university['study_point_image'] = $path_study_point_image;
            }

            if (!empty($file_university_icon)) {
                if ($university['university_icon'] && Storage::disk('public')->exists($university['university_icon'])) {
                    Storage::disk('public')->delete($university['university_icon']);
                }
                $file_university_icon = Storage::disk('public')->put($folder, $file_university_icon);
                $university['university_icon'] = $file_university_icon;
            }

            if (!empty($file_brochure)) {
                if ($university['brochure'] && Storage::disk('public')->exists($university['brochure'])) {
                    Storage::disk('public')->delete($university['brochure']);
                }
                $path_brochure = Storage::disk('public')->put($folder, $file_brochure);
                $university['brochure'] = $path_brochure;
            }

            if (!empty(isset($file_headerImageDesktop))) {
                if ($university['headerImageDesktop'] && Storage::disk('public')->exists($university['headerImageDesktop'])) {
                    Storage::disk('public')->delete($university['headerImageDesktop']);
                }
                $path_headerImageDesktop = Storage::disk('public')->put($folder, $file_headerImageDesktop);
                $university['headerImageDesktop'] = $path_headerImageDesktop;
            }


            if (!empty(isset($file_headerImageMobile))) {
                if ($university['headerImageMobile'] && Storage::disk('public')->exists($university['headerImageMobile'])) {
                    Storage::disk('public')->delete($university['headerImageMobile']);
                }
                $path_headerImageMobile = Storage::disk('public')->put($folder, $file_headerImageMobile);
                $university['headerImageMobile'] = $path_headerImageMobile;
            }


            ////// if(!empty($pathImages)){

            //  //     foreach($pathImages as $path_images){
            //  //        
            //  //         $img['mediaUrl']= $path_images;
            //  //         $img['mediaTitle']="_images";
            // //         $img['altText']='images';

            ////         $finalArrImages[]=$img;
            // //     }
            // //     $university['images'] = json_encode($finalArrImages);
            // // }else{
            // //     $university['images'] = $university['images'];
            //// }


            if (!empty($request['videos']) && !empty($request['videos'][0])) {
                $finalArr = [];

                foreach ($request['videos'] as $video) {
                    $newVideoUrl = str_replace('watch?v=', 'embed/', $video);
                    if (is_string($newVideoUrl)) {
                        $videos['mediaUrl'] = $newVideoUrl;
                        $videos['mediaTitle'] = "_video";
                        $videos['altText'] = 'images';
                        $videoKeyArray = explode('/', $newVideoUrl);
                        $videos['videoKey'] = end($videoKeyArray);
                        $videos['thumbUrl'] = ' https://i.ytimg.com/vi/' . end($videoKeyArray) . '/hqdefault.jpg';
                        $finalArr[] = $videos;
                    }
                }

                $university['videos'] = json_encode($finalArr);
                unset($university['social_media']);
            } else {
                unset($university['videos']);
                unset($university['social_media']);
            }


            if (!empty($request['admission_dates'])) {
                $admission_dates_dateTime = Carbon::parse($request['admission_dates']);
                $university['admission_dates'] = $admission_dates_dateTime->format('Y-m-d H:i:s');
            }


            $new_on_campus_accommodation = [];
            $new_on_campus_accommodation['details'] = (!empty($request['on_campus_accommodation_details'])) ? $request['on_campus_accommodation_details'] : null;
            $new_on_campus_accommodation['website'] = (!empty($request['on_campus_accommodation_website'])) ? $request['on_campus_accommodation_website'] : null;
            $new_on_campus_accommodation['livingExpenseDetails'] = (!empty($request['on_campus_accommodation_livingExpenseDetails'])) ? $request['on_campus_accommodation_livingExpenseDetails'] : null;
            $new_on_campus_accommodation['livingExpenseUrl'] = (!empty($request['on_campus_accommodation_livingExpenseUrl'])) ? $request['on_campus_accommodation_livingExpenseUrl'] : null;
            $new_on_campus_accommodation['ugDescription'] = (!empty($request['on_campus_accommodation_ugDescription'])) ? $request['on_campus_accommodation_ugDescription'] : null;
            $new_on_campus_accommodation['pgDescription'] = (!empty($request['on_campus_accommodation_pgDescription'])) ? $request['on_campus_accommodation_pgDescription'] : null;
            if (!empty($new_on_campus_accommodation)) {
                $university['on_campus_accommodation'] = json_encode($new_on_campus_accommodation);
            }


            $new_off_campus_accommodation = [];
            $new_off_campus_accommodation['description'] = (!empty($request['off_campus_accommodation_description'])) ? $request['off_campus_accommodation_description'] : null;
            $new_off_campus_accommodation['links'] = (!empty($request['off_campus_accommodation_links'])) ? $request['off_campus_accommodation_links'] : null;

            if (!empty($new_off_campus_accommodation['links'])) {
                foreach ($new_off_campus_accommodation['links'] as $key => $link) {
                    $new_off_campus_accommodation['links'][$key] = (!empty($link)) ? $link : null;
                }
            }

            if (!empty($new_off_campus_accommodation)) {
                $university['off_campus_accommodation'] = json_encode($new_off_campus_accommodation);
            }

            $university['overview_services'] = $request['overview_services'];
            $university['accommodation_desc'] = $request['accommodation_desc'];
            $university['calc_living_exp_desc'] = $request['calc_living_exp_desc'];
            $university['name'] = $request['name'];
            $university['url'] = $request['url'];
            $university['country_id'] = $request['country_id'];
            $university['meta_title'] = $request['meta_title'];
            $university['meta_keywords'] = $request['meta_keywords'];
            $university['meta_description'] = $request['meta_description'];
            $university['short_description'] = $request['short_description'];
            $university['entrance_requirement'] = $request['entrance_requirement'];
            $university['phone'] = $request['phone'];
            $university['email'] = $request['email'];
            $university['website'] = $request['website'];
            $university['address'] = $request['address'];
            $university['map_link'] = $request['map_link'];
            $university['wikipedia_url'] = $request['wikipedia_url'];
            $university['population_of_city'] = $request['population_of_city'];
            $university['size_of_city'] = $request['size_of_city'];
            $university['aboutCollege'] = $request['aboutCollege'];
            $university['aboutCollegePlacement'] = $request['aboutCollegePlacement'];
            // $university['on_campus_accommodation'] = $request['on_campus_accommodation'];
            // $university['off_campus_accommodation'] = $request['off_campus_accommodation'];
            // $university['admissionRequirement'] = $request['admissionRequirement']; 
            // $university['campuses'] = $request['campuses'];
            //  $university['ranking_data'] = '$request['ranking_data']';
            // $university['sectionwiseData'] = $request['sectionwiseData'];
            // $university['entryCriteria'] = $request['entryCriteria'];
            // $university['courseWidget'] = $request['courseWidget'];

            // $university['feesTable'] = $request['feesTable'];
            $university['students'] = $request['students']; 
            $university['gallery_desc'] = $request['gallery_desc'];
            $university['faq_desc'] = $request['faq_desc'];
            $university['faq_dream_university_desc'] = $request['faq_dream_university_desc'];
            $university['qs_ranking'] = $request['qs_ranking'];
            $university['reviews'] = $request['reviews'];
            $university['establishment'] = $request['establishment'];
            $university['male_female_ratio'] = $request['male_female_ratio'];
            $university['known_as'] = $request['known_as'];
            $university['endowments'] = $request['endowments'];
            $university['international_students'] = $request['international_students'];
            $university['ug_pg_course_ratio'] = $request['ug_pg_course_ratio'];
            $university['total_campuses'] = $request['total_campuses'];
            $university['status'] = $request['status'];
            $university['international_studentsContent'] = $request['international_studentsContent'];
            $university['scholarships_content'] = $request['scholarships_content'];
            $university['conclusion'] = $request['conclusion'];
            $university['rankings_short_desc'] = $request['rankings_short_desc'];
            $university['admission_short_desc'] = $request['admission_short_desc'];
            $university['course_overview'] = $request['course_overview'];
            $university['admission_overview'] = $request['admission_overview'];
            $university['date_deadline_overview'] = $request['date_deadline_overview'];
            $university['ranking_overview'] = $request['ranking_overview'];
            $university['scholarships_overview'] = $request['scholarships_overview'];

            $university['admission_documents'] = $request['admission_documents'];
            $university['admission_application_fees'] = $request['admission_application_fees'];
            $university['admission_intake_season'] = $request['admission_intake_season'];

            $university['display_date'] = $request['display_date'];
            // $study_details = implode(',',$request['study_detail']);
            $university['study_detail'] = $request['study_detail'];
            // $university['created_at'] = $request['created_at'];
            $university['modified_by'] = Auth()->user()->id;

                
            if(empty($university['created_by'])){
                $university['created_by'] = Auth()->user()->id;
            }

            $university['robots'] = $request['robots'];

            if (!empty($request['recruiter_details'])) {
                $university['recruiter_details'] = $request['recruiter_details'];
                $recruiters = explode(' | ', $request['recruiter_details']);
                $university['recruiters'] = count($recruiters);
            } else {
                $university['recruiter_details'] = NULL;
                $university['recruiters'] = NULL;
            }

            $university['sorting'] = $request['sorting'];
            // $university['data_source_id']=1;
            // $university['sid']=1;
            $university['city_id'] = $request['city_id'];

            $university->update();

            if (!empty($university['city_id'])  && !empty($university->cities)) {
                $university->cities['overview'] = $request['city_overview'];
                $university->cities['accmmidation'] = $request['city_accmmidation'];
                $university->cities['meals'] = $request['city_meals'];
                $university->cities['earings'] = $request['city_earings'];
                $university->cities['local_travel'] = $request['city_local_travel'];
                $university->cities->timestamps = false;
                $university->cities->update();
            }



            flashSuccess(__('university_updated_successfully'));
            return redirect()->route('university.index');
        } catch (\Throwable $th) {
            return redirect()->back()->withInput()->with('error', config('app.debug') ? $th->getMessage() : 'Something went wrong');
        }
    }




    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {

        abort_if(!userCan('university.delete'), 403);

        $universities = Universities::findOrFail($id);

        if (!empty(isset($universities->logo))) {
            deleteFile($universities->logo);
        }
        // if(!empty(isset($universities->images))){
        //     deleteFile($universities->images);
        // }
        if (!empty(isset($universities->headerImageMobile))) {
            deleteFile($universities->headerImageMobile);
        }
        if (!empty(isset($universities->headerImageMobile))) {
            deleteFile($universities->headerImageMobile);
        }

        $universities->delete();

        flashSuccess(__('university_deleted_successfully'));
        return back();
    }

    public function getStateList(Request $request)
    {
        $data['states'] = State::where("country_id", $request->country_id)
            ->get(["name", "id"]);
        return response()->json($data);
    }

    public function getCityList(Request $request)
    {

        $data['cities'] = City::where("state_id", $request->state_id)
            ->get(["name", "id"]);
        return response()->json($data);
    }

    // public function statusChange(Request $request)
    // {
    //     $user = User::findOrFail($request->id);

    //     $user->update(['status' => $request->status]);

    //     if ($request->status == 1) {
    //         return responseSuccess(__('company_activated_successfully'));
    //     } else {
    //         return responseSuccess(__('company_deactivated_successfully'));
    //     }
    // }

    // public function verificationChange(Request $request)
    // {
    //     $user = User::findOrFail($request->id);

    //     if ($request->status) {
    //         $user->update(['email_verified_at' => now()]);
    //         $message = __('email_verified_successfully');
    //     } else {
    //         $user->update(['email_verified_at' => null]);
    //         $message = __('email_unverified_successfully');
    //     }

    //     return responseSuccess($message);
    // }



}
