<?php /** @noinspection ALL */

namespace App\Http\Controllers;

use Carbon\Carbon;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;

class Controller extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;


    public function cleanMessage($msg) {
        // Remove all Unicode control and formatting characters
        // This includes zero-width spaces, BOM, directional marks, and other invisible formatting characters
        $cleanedMessage = preg_replace('/[\p{Cf}\p{Cc}&&[^\r\n]]+/u', '', $msg);

        // Replace smart quotes and dashes with ASCII equivalents
        $cleanedMessage = str_replace(
            ['“','”','‘','’','–','—'],
            ['"','"',"'", "'", '-', '-'],
            $cleanedMessage
        );

    // Additional cleaning for Hebrew/Arabic directional marks and other problematic characters
    $cleanedMessage = preg_replace('/[\x{200E}\x{200F}\x{061C}\x{2066}-\x{2069}\x{202A}-\x{202E}]/u', '', $cleanedMessage);

    // Remove any U+202C POP DIRECTIONAL FORMATTING that might be causing issues
    $cleanedMessage = str_replace("\u{202C}", '', $cleanedMessage);

    return $cleanedMessage;
}


    public  function sendSms($text,$phone,$source = 'Deywuro')
    {
        $message = urlencode($text);
        $num = urlencode($phone);

        $password = urlencode('cse@2021_npontu');

        $url = "https://deywuro.com/api/sms?username=sammy&password=$password&source=$source&destination=" . $num . "&message=" . $message;

        $curl = curl_init($url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($curl);
        curl_close($curl);
        return response()->json(json_decode($output));
    }


    public function sendSmsNew($text,$phone,$source = 'Deywuro'){

        $now = date('Y-m-d H:i:s');
        $message = urlencode($text);
        $num = urlencode($phone);

        $password = urlencode('cse@2021_npontu');

        $directSubmit=file_get_contents("https://deywuro.com/api/sms?username=sammy&password=$password&source=$source&destination=$num&message=$message");
        $this->appLog($now, 'Single SMS fired|', $directSubmit);

        return true;
    }


    function get_tiny_url($url)  {
        $ch = curl_init();
        $timeout = 5;
        curl_setopt($ch,CURLOPT_URL,'https://tinyurl.com/api-create.php?url='.$url);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }


    public function appLog($message)
    {
        $now = Carbon::parse(now());
        file_put_contents(storage_path() . '/logs/app_error.log', "\n" . $now . ' || ' .$message . PHP_EOL, FILE_APPEND);
    }



    public function ip($message)
    {
        $now = Carbon::parse(now());
        file_put_contents(storage_path() . '/logs/ip.log', "\n" . $now . ' || ' .$message . PHP_EOL, FILE_APPEND);
    }


    public function fiveCode($length = 6)
    {
        return substr(str_shuffle(str_repeat($x='0123456789',ceil($length/strlen($x)))),1,$length);
    }
}
