<?php

namespace App\Http\Controllers;

use App\Client;
use App\Mail\pingAdmin;
use BaconQrCode\Encoder\QrCode;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;

class RegistrationOutController extends Controller
{

    public function index(){
        return view('event_register.register_user_out');
    }


    public function create(Request $request){

        $input['first_name']= $request->first_name;
        $input['last_name']= $request->last_name;
        $input['middle_name']= $request->middle_name;
        $input['email']= $request->email;
        $input['phone_number']= $request->phone_number;
        $input['momo_number']= $request->momo_number;
        $input['nationality']= $request->nationality;
        $input['gender']= $request->gender;
        $input['package']= $request->package;
        $input['amount']= '0.1';
        $input['unique_code']= 'MTN-'.$this->randomString(5);
        $input['qr_code']= $request->qr_code;
        $input['otp']= $this->randomString(5);
        $input['status']= $request->status;
        $uniqueCode=$input['unique_code'];


//        STORE DETAILS
        Client::create($input);


        $name=$request->first_name;
        $fullName=$request->first_name .' '.$request->last_name;
        $email=$request->email;
        $phone=$request->phone_number;

//        GENERATE QR CODE
        $string="Name: $fullName \r\nEmail: $email \n\rPhone Number: $phone \n\rNationality: $request->nationality \n\rPackage: $request->package";
        $this->QRGenerater($name,$string);



//        SEND UNIQUE CODE VIA SMS
        $smsMessage="Hello $fullName, 

Your registration code is $uniqueCode";
        $this->sendSms($smsMessage,$phone);


//        SEND QR CODE VIA EMAIL
//        $url = public_path("images/qr_$name.png");
        $url = "http://mtn.npontu.com/images/qr_$name.png";
        $message = "Hello $fullName,  
        Thank you for registering, your unique registration QR code is  
         ![Logo]({$url})";



        $subject = 'NEW REGISTRATION';

        Mail::send(new pingAdmin($email, $message, $subject));

        return redirect('client-register-out')->with('success','Registration successful. Expect an SMS and Email. Thank You');

    }


    private function QRGenerater($name,$string)
    {
        \QrCode::size(1000)
            ->format('png')
            ->generate($string, public_path("images/qr_$name.png"));
    }

    private function randomString($length)
    {
        return $random = substr(str_shuffle(str_repeat($x='0123456789ABCDEFGHIJ',ceil($length/strlen($x)))),1,$length);

    }

    private function sendSms($text,$phone)
    {
        $message = urlencode($text);
        $num = urlencode($phone);
        $sender=urlencode('NEW REG');
        $url = "https://deywuro.com/api/sms?username=Sammy&password=password&source=$sender&destination=" . $num . "&message=" . $message;

        $curl = curl_init($url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_exec($curl);
        curl_close($curl);
    }

}
