<?php

namespace App\Http\Controllers\Website;

use Carbon\Carbon;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Lead;
use App\Models\User;
use App\Models\Newsletter_email;
use App\Models\Candidate;
use App\Models\Admin;
use App\Models\Setting;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Notification;

use App\Notifications\CompanyCreatedNotification;
use App\Notifications\CandidateCreateNotification;
use App\Notifications\Admin\NewUserRegisteredNotification;
use App\Notifications\CompanyCreateApprovalPendingNotification;
use App\Notifications\CandidateCreateApprovalPendingNotification;
use Illuminate\Support\Facades\Mail;


class leadController extends Controller
{
    public function stepperData1(Request $request)
    {
        if ($request->isMethod('post')) {

             if(!empty($request->input('name'))){
                $name = $request->input('name');
            }else{
                $name = $request->input('name1');
            }


            if (auth('user')->check() && auth('user')->user()->role == 'candidate'){
                $oldUser =  auth()->user();
            }
            else{
                $oldUser = User::where('email', $request->input('email'))->first();
            }
            
            if(!($oldUser)){
            $newUsername = Str::slug($name);
            $password= Str::random(8, 'alnum') . '@#';

            if(!empty($request->input('country'))){
                $countryData = explode('@#$?',$request->input('country'));
                $country=$countryData[0];
                $data['country']=$country;
                if(!empty($country)) $data['country']=$country;
                
                $code=$countryData[1];
                if(!empty($code)) $data['country_code']=$code;
            }

            $user = User::create([
                'name' => $name,
                'email' => $request->input('email'),
                'username' => Str::slug($newUsername) . '_' . Str::random(5),
                'password' => Hash::make($password),
                'phone' => $request->input('phone'),
                'country' => $data['country'],
                'source' => $request->input('source'),
                'country_code' => $data['country_code'],
                'role' => 'candidate',
            ]);

            $lead = new Lead;
            $lead->name = $name;
            $lead->email = $request->input('email');
            $lead->phone = $request->input('phone');
            $lead->country_id = $request->input('country');
            $lead->url =  $request->input('url');
            $lead->source =  $request->input('source');
            $lead->user_id =  $user->id;
            $questions = [];
            $questions['location'] = $request->input('location');
            $questions['level'] = $request->input('level');
            $questions['journey'] = $request->input('journey');
            $jsonData = json_encode($questions);
            $lead->description = $jsonData;
            $lead = $lead->save();

            $sendTo = str_replace([' ','+'],'',$code.$user->phone);
            sendRegisterWhatsapp([
                "sendTo" => $sendTo,
                "name" => "$user->name",
                "email" => "$user->email",
                "password" => "$password"
            ]);

            try {
                $admins = Admin::all();
                foreach ($admins as $admin) {
                    Notification::send($admin, new NewUserRegisteredNotification($admin, $user));
                }
            } catch (\Throwable $th) {}

            if (checkMailConfig()) {
                if ($user->role == "candidate") {
                    $candidate_account_auto_activation_enabled = Setting::where("candidate_account_auto_activation", 1)->count();
                    if ($candidate_account_auto_activation_enabled) {
                        Notification::route('mail', $user->email)->notify(new CandidateCreateNotification($user, $password));
                    } else {
                        Notification::route('mail', $user->email)->notify(new CandidateCreateApprovalPendingNotification($user, $password));
                    }
                } elseif ($user->role == "company") {
                    $employer_auto_activation_enabled = Setting::where("employer_auto_activation", 1)->count();
                    if ($employer_auto_activation_enabled) {
                        Notification::route('mail', $user->email)->notify(new CompanyCreatedNotification($user, $password));
                    } else {
                        Notification::route("mail", $user->email)->notify(new CompanyCreateApprovalPendingNotification($user, $password));
                    }
                }
            }
            // session(['isLoggedIn' => true]);
            // Auth::guard('user')->login($user);
                return ['status' => 1, 'msg' => 'Lead Submit Successfully'];
            }
            else{
                $lead = new Lead;
                $lead->name = $name;
                $lead->email = $request->input('email');
                $lead->phone = $request->input('phone');
                $lead->country_id = $request->input('country');
                $lead->url =  $request->input('url');
                $lead->source =  $request->input('source');
                if (auth('user')->check() && auth('user')->user()->role == 'candidate'){
                    $user_id =  auth()->user()->id;
                }
                else{
                    $user_id =  $oldUser->id;
                }
                $questions = [];
                $questions['location'] = $request->input('location');
                $questions['level'] = $request->input('level');
                $questions['journey'] = $request->input('journey');
                $jsonData = json_encode($questions);
                $lead->description = $jsonData;
                $lead->user_id = $user_id;
                $lead = $lead->save();
                // if(session(['isLoggedIn' => true])){
                //     Auth::guard('user')->login($oldUser);
                // }

                $lastActivityUser = User::FindOrFail($user_id);
                $lastActivityUser->update([  
                    'last_activity_date' =>  Carbon::now(),
                ]);
                if($lead){
                    return ['status' => 1, 'msg' => 'Lead Submit Successfully'];
                }
            }
            return ['status' => 0, 'msg' => 'Data Not save in Lead Data'];
        }
    }

    public function stepperData(Request $request)
    {
        if ($request->isMethod('post')) {

            if(!empty($request->input('name'))){
                $name = $request->input('name');
            }else{
                $name = $request->input('name1');
            }

            $oldUser = User::where('email', $request->input('email'))->first();
            if (auth('user')->check() && auth('user')->user()->role == 'candidate'){
                $oldUser =  auth()->user();
            }
           
            if(!($oldUser)){
                $newUsername = Str::slug($request->input('name'));
                $password= Str::random(8, 'alnum') . '@#';

                if(!empty($request->input('country'))){
                    $countryData = explode('@#$?',$request->input('country'));
                    $country=$countryData[0];
                    $data['country']=$country;
                    if(!empty($country)) $data['country']=$country;
                    
                    $code=$countryData[1];
                    if(!empty($code)) $data['country_code']=$code;
                }
                
                    $parts = explode(" ", $name);
                    $first = array_shift($parts);
                    $last = array_pop($parts);
                    $middle = implode(" ", $parts);

                $user = User::create([
                    'name' => $first,
                    'middle_name' => $middle,
                    'last_name' => $last,
                    'email' => $request->input('email'),
                    'username' => Str::slug($newUsername) . '_' . Str::random(5),
                    'password' => Hash::make($password),
                    'phone' => $request->input('phone'),
                    'country' => $data['country'],
                    'country_code' => $data['country_code'],
                    'role' => 'candidate',
                    'source' => $request->source,
                ]);
                $oldUser =$user;
                $user->password = $password;

                $data = array('data'=>$oldUser);
                Mail::send('mails.welcome-mail', $data, function($message) use($oldUser) {
                    $message->to($oldUser->email, 'Gradding')->subject
                    ('Welcome to Gradding');
                    $message->from('contact@gradding.com','Gradding Team');
                });

                $data = array('data'=>$oldUser);
                Mail::send('mails.adminmail', $data, function($message) use($oldUser) {
                    $message->to('contact@gradding.com', 'Gradding')->subject
                        ('New lead received');
                    $message->from('contact@gradding.com','Gradding Team');
                });

                $sendTo = str_replace([' ','+'],'',$code.$user->phone);
                sendRegisterWhatsapp([
                    "sendTo" => $sendTo,
                    "name" => "$user->name",
                    "email" => "$user->email",
                     "password" => "$password"
                ]);

                // session(['isLoggedIn' => true]);
                // Auth::guard('user')->login($user);
            }
            
                $lead = new Lead;
                $lead->name = $name;
                $lead->email = $request->input('email');
                $lead->phone = $request->input('phone');
                $lead->country_id = $request->input('country');
                $lead->url =  $request->input('url');
                $lead->source =  $request->input('source');
                if (auth('user')->check() && auth('user')->user()->role == 'candidate'){
                    $user_id =  auth()->user()->id;
                }
                else{
                    $user_id =  $oldUser->id;
                }
                $questions = [];
                $questions['location'] = $request->input('location');
                $questions['level'] = $request->input('level');
                $questions['journey'] = $request->input('journey');
                $jsonData = json_encode($questions);
                $lead->description = $jsonData;
                $lead->user_id = $user_id;
                $lead = $lead->save();
                // if(session(['isLoggedIn' => true])){
                    //     Auth::guard('user')->login($oldUser);
                    // }
                    
                    // dd($user_id);
                // user update last activity 
                $lastActivityUser = User::FindOrFail($user_id);
                $lastActivityUser->update([  
                    'last_activity_date' =>  Carbon::now(),
                ]);

                if($lead){
                    return ['status' => 1, 'msg' => 'Lead Submit Successfully'];
                }
            return ['status' => 0, 'msg' => 'Data Not save in Lead Data'];
        }
    }

    public function popupData1(Request $request)
    {
        if ($request->isMethod('post')) {
            if(!empty($request->input('name'))){
                $name = $request->input('name');
            }
            else{
                $name = $request->input('name1');
            }
            
            if (auth('user')->check() && auth('user')->user()->role == 'candidate'){
                $oldUser =  auth()->user();
            }
            else{
                $oldUser = User::where('email', $request->input('email'))->first();
            }
            if(!($oldUser)){
                $newUsername = Str::slug($request->input('name'));
                $password= Str::random(8, 'alnum') . '@#';
                if(!empty($request->input('country'))){
                    $countryData = explode('@#$?',$request->input('country'));
                    $country=$countryData[0];
                    $data['country']=$country;
                    if(!empty($country)) $data['country']=$country;
                    
                    $code=$countryData[1];
                    if(!empty($code)) $data['country_code']=$code;
                }
    
                $user = User::create([
                    'name' => $request->input('name'),
                    'email' => $request->input('email'),
                    'username' => Str::slug($newUsername) . '_' . Str::random(5),
                    'password' => Hash::make($password),
                    'phone' => $request->input('phone'),
                    'country' => $data['country'],
                    'country_code' => $data['country_code'],
                    'role' => 'candidate',
                    'source' => $request->source
                ]);

                $lead = new Lead;
                $lead->name = $name;
                $lead->email = $request->input('email');
                $lead->phone = $request->input('phone');
                $lead->country_id = $request->input('country');
                $lead->url =  $request->input('url');
                $lead->source =  $request->input('source');
                $lead->user_id =  $user->id;
                $questions = [];
                $questions['date'] = $request->input('date');
                $questions['intake'] = $request->input('intake');
                $jsonData = json_encode($questions);
                $lead->description = $jsonData;
                $lead = $lead->save();


                $sendTo = str_replace([' ','+'],'',$code.$user->phone);
                sendRegisterWhatsapp([
                    "sendTo" => $sendTo,
                    "name" => "$user->name",
                    "email" => "$user->email",
                     "password" => "$password"
                ]);

                // try {
                //     $admins = Admin::all();
                //     foreach ($admins as $admin) {
                //         Notification::send($admin, new NewUserRegisteredNotification($admin, $user));
                //     }
                // } catch (\Throwable $th) {}

                $data = array('data'=>$user);
                Mail::send('mails.booksessionMail', $data, function($message) use($user)  {
                   $message->to($user->email, $user->name)->subject
                      ('Free Counseling Session from gradding');
                   $message->from('contact@gradding.com','Gradding Team');
                });

                if (checkMailConfig()) {
                    if ($user->role == "candidate") {
                        $candidate_account_auto_activation_enabled = Setting::where("candidate_account_auto_activation", 1)->count();
                        if ($candidate_account_auto_activation_enabled) {
                            Notification::route('mail', $user->email)->notify(new CandidateCreateNotification($user, $password));
                        } else {
                            Notification::route('mail', $user->email)->notify(new CandidateCreateApprovalPendingNotification($user, $password));
                        }
                    } elseif ($user->role == "company") {
                        $employer_auto_activation_enabled = Setting::where("employer_auto_activation", 1)->count();
                        if ($employer_auto_activation_enabled) {
                            Notification::route('mail', $user->email)->notify(new CompanyCreatedNotification($user, $password));
                        } else {
                            Notification::route("mail", $user->email)->notify(new CompanyCreateApprovalPendingNotification($user, $password));
                        }
                    }
                }
                // session(['isLoggedIn' => true]);
                // Auth::guard('user')->login($user);
                return ['status' => 1, 'msg' => 'Lead Submit Successfully'];
            }
            else{
                    $lead = new Lead;
                    $lead->name = $name;
                    $lead->email = $request->input('email');
                    $email = $lead->email;

                    $lead->phone = $request->input('phone');
                    $lead->country_id = $request->input('country');
                    $lead->url =  $request->input('url');
                    $lead->source =  $request->input('source');
                    if (auth('user')->check() && auth('user')->user()->role == 'candidate'){
                        $user_id =  auth()->user()->id;
                    }
                    else{
                        $user_id =  $oldUser->id;
                    }
                    $questions = [];
                    $questions['date'] = $request->input('date');
                    $questions['intake'] = $request->input('intake');
                    $jsonData = json_encode($questions);
                    $lead->description = $jsonData;
                    $lead->user_id = $user_id;
                    $lead = $lead->save();
                    // if(Auth::guard('user')){
                    //     Auth::guard('user')->login($oldUser);
                    // }

                    // user update last activity 
                    $lastActivityUser = User::FindOrFail($user_id);
                    $lastActivityUser->update([  
                        'last_activity_date' =>  Carbon::now(),
                    ]);

                    $data = array('data'=>$lead);
                  
                    Mail::send('mails.booksessionMail', $data, function($message) use($email,$name)  {
                       $message->to($email, $name)->subject
                          ('Free Counseling Session from gradding');
                       $message->from('contact@gradding.com','Gradding Team');
                    });


                    if($lead){
                        return ['status' => 1, 'msg' => 'Lead Submit Successfully'];
                    }            
                }
            return ['status' => 0, 'msg' => 'Data Not save in Lead Data'];
        }
    }

    public function popupData(Request $request)
    {
        if ($request->isMethod('post')) {
            if(!empty($request->input('name'))){
                $name = $request->input('name');
            }
            else{
                $name = $request->input('name1');
            }
            
            $oldUser = User::where('email', $request->input('email'))->first();
            if (auth('user')->check() && auth('user')->user()->role == 'candidate'){
                $oldUser =  auth()->user();
            }
         
            if(!($oldUser)){
                $newUsername = Str::slug($name);
                $password= Str::random(8, 'alnum') . '@#';
                if(!empty($request->input('country'))){
                    $countryData = explode('@#$?',$request->input('country'));
                    $country=$countryData[0];
                    $data['country']=$country;
                    if(!empty($country)) $data['country']=$country;
                    
                    $code=$countryData[1];
                    if(!empty($code)) $data['country_code']=$code;
                }

                $parts = explode(" ", $name);
                $first = array_shift($parts);
                $last = array_pop($parts);
                $middle = implode(" ", $parts);
    
                $user = User::create([
                    'name' => $first,
                    'middle_name' => $middle,
                    'last_name' => $last,
                    'email' => $request->input('email'),
                    'username' => Str::slug($newUsername) . '_' . Str::random(5),
                    'password' => Hash::make($password),
                    'phone' => $request->input('phone'),
                    'country' => $data['country'],
                    'country_code' => $data['country_code'],
                    'role' => 'candidate',
                    'source' => $request->source,
                ]);
                $oldUser =$user;
                $user->password = $password;
                
                $data = array('data'=>$oldUser);
                Mail::send('mails.welcome-mail', $data, function($message) use($oldUser) {
                    $message->to($oldUser->email, 'Gradding')->subject
                    ('Welcome to Gradding');
                    $message->from('contact@gradding.com','Gradding Team');
                });

                $sendTo = str_replace([' ','+'],'',$code.$user->phone);
                sendRegisterWhatsapp([
                    "sendTo" => $sendTo,
                    "name" => "$user->name",
                    "email" => "$user->email",
                    "password" => "$password"
                ]);
                $data = array('data'=>$oldUser);
                Mail::send('mails.adminmail', $data, function($message) use($oldUser) {
                    $message->to('contact@gradding.com', 'Gradding')->subject
                        ('New lead received');
                    $message->from('contact@gradding.com','Gradding Team');
                });

                // session(['isLoggedIn' => true]);
                // Auth::guard('user')->login($user);
                // return ['status' => 1, 'msg' => 'Lead Submit Successfully'];
            }

            $lead = new Lead;
            $lead->name = $name;
            $lead->email = $request->input('email');
            $lead->phone = $request->input('phone');
            $lead->country_id = $request->input('country');
            $lead->url =  $request->input('url');
            $lead->source =  $request->input('source');
            if (auth('user')->check() && auth('user')->user()->role == 'candidate'){
                $user_id =  auth()->user()->id;
            } else {
                $user_id =  $oldUser->id;
            }
            $questions = [];
            // $questions['date'] = $request->input('date');
            // $dateTime = Carbon::parse($request->input('date'));
            // $date = $dateTime->format('Y-m-d');
            $questions['date'] = $request->input('date');
            $questions['intake'] = $request->input('intake');
            $jsonData = json_encode($questions);
            $lead->description = $jsonData;
            $lead->service = $request->input('service');
            $lead->user_id = $user_id;
            $lead = $lead->save();
            // if(Auth::guard('user')){
            //     Auth::guard('user')->login($oldUser);
            // }

            // user update last activity 
            $lastActivityUser = User::FindOrFail($user_id);
            $lastActivityUser->update([  
                'last_activity_date' =>  Carbon::now(),
            ]);

            $data = array('data'=>$oldUser);
            Mail::send('mails.booksessionMail', $data, function($message) use($oldUser) {
                $message->to($oldUser->email, 'Gradding')->subject
                ('Free Counseling Session from gradding');
                $message->from('contact@gradding.com','Gradding Team');
            });
            
            // dd('works');

            if($lead){
                return ['status' => 1, 'msg' => 'Lead Submit Successfully'];
            }            
            return ['status' => 0, 'msg' => 'Data Not save in Lead Data'];
        }
    }

    public function contactDetails1(Request $request)
    {
        $request->validate([
            'name' => 'required| string| max:50',
            'email' => 'required| email| max:255',
            'phone' => 'required | min:9| max:255',
          ]);

        $data['name'] = $request->name;
        $data['email'] = $request->email;
        $data['phone'] = $request->phone;
        $data['description'] = $request->description;
        $data['url'] = $request->url;
        $data['source'] = $request->source;

        $contact = Lead::create($data);

        if (!empty($contact)) {
            return ['status' => 1, 'msg' => 'We Will Contact You Soon'];
        }
    
        return ['status' => 0, 'msg' => 'Something Went Wrong'];

    }

    public function contactDetails(Request $request)
    {
        if ($request->isMethod('post')) {

            $request->validate([
                'name' => 'required| string| max:50',
                'email' => 'required| email| max:255',
                'phone' => 'required | min:9| max:255',
            ]);


          $oldUser = User::where('email', $request->input('email'))->first();
            if (auth('user')->check() && auth('user')->user()->role == 'candidate'){
                $oldUser =  auth()->user();
            }
         
            if(!($oldUser)){
                $newUsername = Str::slug($request->name);
                $password= Str::random(8, 'alnum') . '@#';
                $data['country'] = NULL;
                $data['country_code'] = NULL;
                if(!empty($request->input('country'))){
                    $countryData = explode('@#$?',$request->input('country'));
                    $country=$countryData[0];
                    $data['country']=$country;
                    if(!empty($country)) $data['country']=$country;
                    
                    $code=$countryData[1];
                    if(!empty($code)) $data['country_code']=$code;
                }

                $parts = explode(" ", $request->name);
                $first = array_shift($parts);
                $last = array_pop($parts);
                $middle = implode(" ", $parts);
    
                $user = User::create([
                    'name' => $first,
                    'middle_name' => $middle,
                    'last_name' => $last,
                    'email' => $request->input('email'),
                    'username' => Str::slug($newUsername) . '_' . Str::random(5),
                    'password' => Hash::make($password),
                    'phone' => $request->input('phone'),
                    'country' => $data['country'],
                    'country_code' => $data['country_code'],
                    'role' => 'candidate',
                    'source' => $request->source,
                ]);
                $oldUser =$user;
                $user->password = $password;
                
                $data = array('data'=>$oldUser);
                Mail::send('mails.welcome-mail', $data, function($message) use($oldUser) {
                    $message->to($oldUser->email, 'Gradding')->subject
                    ('Welcome to Gradding');
                    $message->from('contact@gradding.com','Gradding Team');
                });

                $sendTo = str_replace([' ','+'],'',$code.$user->phone);
                sendRegisterWhatsapp([
                    "sendTo" => $sendTo,
                    "name" => "$user->name",
                    "email" => "$user->email",
                    "password" => "$password"
                ]);
                $data = array('data'=>$oldUser);
                Mail::send('mails.adminmail', $data, function($message) use($oldUser) {
                    $message->to('contact@gradding.com', 'Gradding')->subject
                        ('New lead received');
                    $message->from('contact@gradding.com','Gradding Team');
                });
                // session(['isLoggedIn' => true]);
                // Auth::guard('user')->login($user);
                // return ['status' => 1, 'msg' => 'Lead Submit Successfully'];
            }

                $lead = new Lead;
                $lead->name = $request->name;
                $lead->email = $request->input('email');
                $lead->phone = $request->input('phone');
                $lead->country_id = $request->input('country');
                $lead->url =  $request->input('url');
                $lead->source =  $request->input('source');
                $lead->description =  $request->input('description');
                if (auth('user')->check() && auth('user')->user()->role == 'candidate'){
                    $user_id =  auth()->user()->id;
                }
                else{
                    $user_id =  $oldUser->id;
                }
                $lead->user_id = $user_id;
                $lead = $lead->save();

                // user update last activity 
                $lastActivityUser = User::FindOrFail($user_id);
                $lastActivityUser->update([  
                    'last_activity_date' =>  Carbon::now(),
                ]);

            if (!empty($lead)) {
                return ['status' => 1, 'msg' => 'We Will Contact You Soon'];
            }
            return ['status' => 0, 'msg' => 'Something Went Wrong'];
        }

    }

    // public function googlePpc(Request $request){
    //     // PPC Leads from FB, Insta, Quora
    //     $user = 'deepak';
        

    //     $name = '';
    //     $email = '';
    //     $phone = '';
    //     $interested_degree = '';
    //     $which_program = '';
    //     $source = 'Ads';




    //     if( $request->has('name') ) {
    //         $name = $request->query('name');
    //     }

    //     if( $request->has('first_name') ) {
    //         $name = $request->query('first_name');
    //     }

    //     if( $request->has('last_name') ) {
    //         $last_name = $request->query('last_name');
    //     }

    //     if( $request->has('email') ) {
    //         $email = $request->query('email');
    //     }

    //     if( $request->has('phone') ) {
    //         $phone = str_replace("+","",$request->query('phone'));
    //     }

    //     if( $request->has('interested_degree') ) {
    //         $interested_degree = $request->query('interested_degree');
    //     }

    //     if( $request->has('which_program') ) {
    //         $which_program = $request->query('which_program');
    //     }

    //     if( $request->has('source') ) {
    //         $source = $request->query('source');
    //     }

    //     $campaign = '';
    //     if( $request->has('campaign') ) {
    //         $campaign = $request->query('campaign');
    //     }
        
    //     $user = $oldUser = User::where('email', $email)->first();
        
        
    //     if(!($oldUser)){
    //         $newUsername = Str::slug($name);
    //         $password= Str::random(8, 'alnum') . '@#';

    //         $user = User::create([
    //             'name' => $name,
    //             'email' => $email,
    //             'username' => Str::slug($newUsername) . '_' . Str::random(5),
    //             'password' => Hash::make($password),
    //             'phone' => $phone,
    //             'country' =>"India",
    //             'country_code' => "91",
    //             'role' => 'candidate',
    //             'source' => $source,
    //         ]);

    //         $data = array('data'=>$user);
    //         Mail::send('mails.welcome-mail', $data, function($message) use($user) {
    //             $message->to($user->email, 'Gradding')->subject
    //             ('Welcome to Gradding');
    //             $message->from('contact@gradding.com','Gradding Team');
    //         });

    //         $sendTo = str_replace([' ','+'],'','91'.$user->phone);
    //         sendRegisterWhatsapp([
    //             "sendTo" => $sendTo,
    //             "name" => "$user->name",
    //             "email" => "$user->email",
    //             "password" => "$password"
    //         ]);
    //         $data = array('data'=>$user);
    //         Mail::send('mails.adminmail', $data, function($message) use($user) {
    //             $message->to('contact@gradding.com', 'Gradding')->subject
    //                 ('New lead received');
    //             $message->from('contact@gradding.com','Gradding Team');
    //         });

    //     }
       


    //     $lead = new Lead;
    //     $lead->name = $name;
    //     $lead->email = $email;
    //     $lead->phone = $phone;
    //     // $lead->country_id = $request->input('country');
    //     $lead->url =  "NA";
    //     $lead->source =  $source;
    //     $lead->user_id =  $user->id;
    //     $lead->country = 'India@#$?91';
    //     $lead->country_id = 'India@#$?91';

    //     $questions = [];
    //     $questions['interested_degree'] = $interested_degree;
    //     $questions['which_program'] = $which_program;
    //     $questions['campaign'] = $campaign;

    //     $lastActivityUser = User::FindOrFail($user->id);
    //     $lastActivityUser->update([
    //         'last_activity_date' =>  Carbon::now(),
    //     ]);

    //     $jsonData = json_encode($questions);
    //     $lead->description = $jsonData;
    //     $lead = $lead->save();

    //     return 1;
    // }

    public function googlePpc(Request $request){
        // PPC Leads from FB, Insta, Quora
        $user = 'deepak';
        

        $name = '';
        $email = '';
        $phone = '';
        $interested_degree = '';
        $which_program = '';
        $source = 'Ads';




        if( $request->has('name') ) {
            $name = $request->query('name');
        }

        if( $request->has('first_name') ) {
            $name = $request->query('first_name');
        }

        if( $request->has('last_name') ) {
            $last_name = $request->query('last_name');
        }

        if( $request->has('email') ) {
            $email = $request->query('email');
        }

        if( $request->has('phone') ) {
            $phone = str_replace("+","",$request->query('phone'));
        }

        if( $request->has('interested_degree') ) {
            $interested_degree = $request->query('interested_degree');
        }

        if( $request->has('which_program') ) {
            $which_program = $request->query('which_program');
        }

        if( $request->has('source') ) {
            $source = $request->query('source');
        }

        $campaign = '';
        if( $request->has('campaign') ) {
            $campaign = $request->query('campaign');
        }

        $city = '';
        if( $request->has('city') ) {
            $city = $request->query('city');
        }

        $state = '';
        if( $request->has('state') ) {
            $state = $request->query('state');
        }
        
        $user = $oldUser = User::where('email', $email)->first();
        
        
        if(!($oldUser)){
            $newUsername = Str::slug($name);
            $password= Str::random(8, 'alnum') . '@#';

            $user = User::create([
                'name' => $name,
                'email' => $email,
                'username' => Str::slug($newUsername) . '_' . Str::random(5),
                'password' => Hash::make($password),
                'phone' => $phone,
                'country' =>"India",
                'country_code' => "91",
                'role' => 'candidate',
                'source' => $source,
            ]);

            if($user->id){
                $candidate = Candidate::where('user_id', $user->id)->first();
        
                if(!empty($city) && !empty($candidate)){
                    $candidate->city_id = $city;
                    $candidate->state_id = $state;
                    $candidate->save();                
                }
            }

            $data = array('data'=>$user);
            Mail::send('mails.welcome-mail', $data, function($message) use($user) {
                $message->to($user->email, 'Gradding')->subject
                ('Welcome to Gradding');
                $message->from('contact@gradding.com','Gradding Team');
            });

            $sendTo = str_replace([' ','+'],'','91'.$user->phone);
            sendRegisterWhatsapp([
                "sendTo" => $sendTo,
                "name" => "$user->name",
                "email" => "$user->email",
                "password" => "$password"
            ]);
            $data = array('data'=>$user);
            Mail::send('mails.adminmail', $data, function($message) use($user) {
                $message->to('contact@gradding.com', 'Gradding')->subject
                    ('New lead received');
                $message->from('contact@gradding.com','Gradding Team');
            });

        }
       


        $lead = new Lead;
        $lead->name = $name;
        $lead->email = $email;
        $lead->phone = $phone;
        // $lead->country_id = $request->input('country');
        $lead->url =  "NA";
        $lead->source =  $source;
        $lead->user_id =  $user->id;
        $lead->country = 'India@#$?91';
        $lead->country_id = 'India@#$?91';

        $questions = [];
        $questions['interested_degree'] = $interested_degree;
        $questions['which_program'] = $which_program;
        $questions['campaign'] = $campaign;

        $lastActivityUser = User::FindOrFail($user->id);
        $lastActivityUser->update([
            'last_activity_date' =>  Carbon::now(),
        ]);
        



        $jsonData = json_encode($questions);
        $lead->description = $jsonData;
        $lead = $lead->save();

        return 1;
    }

    public function booksessionMobile1(Request $request)
    {
        // PPC mail v1.grtadding.com
        if (auth('user')->check() && auth('user')->user()->role == 'candidate'){
            $oldUser =  auth()->user();
        }
        else{
            $oldUser = User::where('email', $request->input('email'))->first();
        }
        if(!($oldUser)){
            $newUsername = Str::slug($request->input('name'));
            $password= Str::random(8, 'alnum') . '@#';
            if(!empty($request->country)){
                $countryData = explode('@#$?',$request->country);
                $country=$countryData[0];
                $data['country']=$country;
                if(!empty($country)) $data['country']=$country;
                
                $code=$countryData[1];
                if(!empty($code)) $data['country_code']=$code;
            }

            $user = User::create([
                'name' => $request->input('name').' '.$request->input('lastName'),
                'email' => $request->input('email'),
                'username' => Str::slug($newUsername) . '_' . Str::random(5),
                'password' => Hash::make($password),
                'phone' => $request->input('phone'),
                'country' => $data['country'],
                'country_code' => $data['country_code'],
                'role' => 'candidate',
                'source' => $request->source,
            ]);
            $oldUser = $user;

            Candidate::where('user_id', $user->id)
            ->update(['city_id' => $request->city]);

            // user update last activity 
            $lastActivityUser = User::FindOrFail($user->id);
            $lastActivityUser->update([  
                'last_activity_date' =>  Carbon::now(),
            ]);

            $sendTo = str_replace([' ','+'],'',$code.$user->phone);
            sendRegisterWhatsapp([
                "sendTo" => $sendTo,
                "name" => "$user->name",
                "email" => "$user->email",
                "password" => "$password"
            ]);

            if (checkMailConfig()) {
                if ($user->role == "candidate") {
                    $candidate_account_auto_activation_enabled = Setting::where("candidate_account_auto_activation", 1)->count();
                    if ($candidate_account_auto_activation_enabled) {
                        Notification::route('mail', $user->email)->notify(new CandidateCreateNotification($user, $password));
                    } else {
                        Notification::route('mail', $user->email)->notify(new CandidateCreateApprovalPendingNotification($user, $password));
                    }
                } 
            }

        }        
                $lead = new Lead;
                $lead->name = $request->name. ' ' .$request->lastName;
                $lead->email = $request->email;
                $lead->phone = $request->phone;
                $lead->country_id = $request->country;
                $lead->url =  $request->url;
                $lead->source =  $request->source;
                $lead->city =  $request->city;

                if (auth('user')->check() && auth('user')->user()->role == 'candidate'){
                    $lead->user_id =  auth()->user()->id;
                }
                else{
                    $lead->user_id =  $oldUser->id;
                }
                $questions = [];
                $questions['date'] = $request->date;
                $questions['intake'] = $request->intake;
                $jsonData = json_encode($questions);
                $lead->description = $jsonData;
                $lead = $lead->save();
                        
                $data = array('data'=>$oldUser);
                Mail::send('mails.booksessionMail', $data, function($message) use($oldUser) {
                    $message->to($oldUser->email, 'Gradding')->subject
                        ('Free Counseling Session from gradding');
                    $message->from('contact@gradding.com','Gradding Team');
                });
                // if(Auth::guard('user')){
                //     Auth::guard('user')->login($oldUser);
                // }
            if($lead){
                return response()->json(['status' => 1, 'message' => 'Lead Submit Successfully'],200);
            }            
                
        return response()->json(['status' => 0, 'message' => 'Lead  Unsuccessfully']);

    }

    public function booksessionMobile(Request $request)
    {
        $oldUser = User::where('email', $request->input('email'))->first();
        if (auth('user')->check() && auth('user')->user()->role == 'candidate'){
            $oldUser =  auth()->user();
        }
        
        if(!($oldUser)){
            $newUsername = Str::slug($request->input('name'));
            $password= Str::random(8, 'alnum') . '@#';
            if(!empty($request->country)){
                $countryData = explode('@#$?',$request->country);
                $country=$countryData[0];
                $data['country']=$country;
                if(!empty($country)) $data['country']=$country;
                
                $code=$countryData[1];
                if(!empty($code)) $data['country_code']=$code;
            }
            $name = $request->input('name').' '.$request->input('lastName');
            $parts = explode(" ", $name);
            $first = array_shift($parts);
            $last = array_pop($parts);
            $middle = implode(" ", $parts);

            $user = User::create([
                'name' => $first,
                'middle_name' => $middle,
                'last_name' => $last,
                'email' => $request->input('email'),
                'username' => Str::slug($newUsername) . '_' . Str::random(5),
                'password' => Hash::make($password),
                'phone' => $request->input('phone'),
                'country' => $data['country'],
                'country_code' => $data['country_code'],
                'role' => 'candidate',
                'source' => $request->source,
            ]);
            $oldUser = $user;
            $user->password = $password;

            $sendTo = str_replace([' ','+'],'',$code.$user->phone);
            sendRegisterWhatsapp([
                "sendTo" => $sendTo,
                "name" => "$user->name",
                "email" => "$user->email",
                "password" => "$password"
            ]);

            $data = array('data'=>$oldUser);
            Mail::send('mails.welcome-mail', $data, function($message) use($oldUser) {
                $message->to($oldUser->email, 'Gradding')->subject
                ('Welcome to Gradding');
                $message->from('contact@gradding.com','Gradding Team');
            });

            $data = array('data'=>$oldUser);
            Mail::send('mails.adminmail', $data, function($message) use($oldUser) {
                $message->to('contact@gradding.com', 'Gradding')->subject
                    ('PPC Form Lead');
                $message->from('contact@gradding.com','Gradding Team');
            });


        }        
                $lead = new Lead;
                $lead->name = $request->name. ' ' .$request->lastName;
                $lead->email = $request->email;
                $lead->phone = $request->phone;
                $lead->country_id = $request->country;
                $lead->url =  $request->url;
                $lead->source =  $request->source;
                $lead->city =  $request->city;
                if (auth('user')->check() && auth('user')->user()->role == 'candidate'){
                    $lead->user_id =  auth()->user()->id;
                }
                else{
                    $lead->user_id =  $oldUser->id;
                }
                $questions = [];
                $questions['date'] = $request->date;
                $questions['intake'] = $request->intake;
                $jsonData = json_encode($questions);
                $lead->description = $jsonData;
                $lead = $lead->save();
                
                Candidate::where('user_id', $user->id)
                ->update(['city_id' => $request->city]);

                   // user update last activity 
                   $lastActivityUser = User::FindOrFail($user->id);
                   $lastActivityUser->update([  
                       'last_activity_date' =>  Carbon::now(),
                   ]);

                $data = array('data'=>$oldUser);
                Mail::send('mails.booksessionMail', $data, function($message) use($oldUser) {
                    $message->to($oldUser->email, 'Gradding')->subject
                    ('Free Counseling Session from gradding');
                    $message->from('contact@gradding.com','Gradding Team');
                });

               

           

            // if(Auth::guard('user')){
                    //     Auth::guard('user')->login($oldUser);
                    // }
                    if($lead){
                return ['status' => 1, 'msg' => 'We Will Contact You Soon'];
            }            
                
            return ['status' => 0, 'msg' => 'Something Went Wrong'];

    }

    public function newsletter(Request $request)
    {
        $lead = new Newsletter_email;
        $lead->email = $request->email;
        $lead->url =  $request->url;
        $lead->source =  $request->source;
        // if (auth('user')->check() && auth('user')->user()->role == 'candidate'){
        //     $lead->user_id =  auth()->user()->id;
        // }
        // else{    
        //     $lead->user_id =  $oldUser->id;
        // }
        $lead = $lead->save();
        
        if($lead){
            return ['status' => 1, 'msg' => 'We Will Contact You Soon'];
        }

        return ['status' => 0, 'msg' => 'Something Went Wrong'];

    }

}