<?php

namespace backend\components;

use app\models\LogError;
use app\models\SmCp;
use app\models\SmCpOtp;
use Exception;
use Yii;
use yii\base\Component;

class Common extends Component
{
	public function send_sms($type, $contact, $content_arr = array())
	{
		$msg = "";
		if (!empty($contact)) {
			if ($type == 'otp') {
				$otp = rand(1111, 9999);
				//$msg = 'Please use OTP-' . $otp . ' for using services in salesprocpnetwork.com';

				/*
				http://sms.digimiles.in/bulksms/bulksms?username=di78-rajum&password=digimile&type=0&dlr=1&destination=8788093785&source=ADTYDP&message=Dear Customer, DON'T SHARE: 7776654 is the Password for your CpBroadcast Account. Keep this OTP to yourself.Regards,Adityaraj Builders&entityid=1501604490000038550&tempid=1107172441148528477
				*/

				/* $msg = "DON'T SHARE: " . $otp . " is the Password for your CPBroadcast Account." . PHP_EOL . "Keep this OTP to yourself." . PHP_EOL . "Regards," . PHP_EOL . "Adityaraj Builders"; */

				$msg = "DON'T SHARE: " . $otp . " is the Password for your CPBroadcast Account." . PHP_EOL . "Keep this OTP to yourself." . PHP_EOL . "Regards," . PHP_EOL . "SalesProsys";

				//save in db
				$ticket_model = new SmCpOtp();
				$ticket_model->contact = $contact;
				$ticket_model->otp = $otp;
				$ticket_model->created_on = date('Y-m-d H:i:s');
				$newtimestamp = strtotime($ticket_model->created_on . ' + 30 minute');
				$expiry_at = date('Y-m-d H:i:s', $newtimestamp);
				$ticket_model->expiry_at = $expiry_at;
				$ticket_model->save();
			} else if ($type == 'onboard') {

				/* $msg = "DON'T SHARE: " . $otp . " is the Password for your CPBroadcast Account." . PHP_EOL . "Keep this OTP to yourself." . PHP_EOL . "Regards," . PHP_EOL . "SalesProsys"; */
				$cp_name = $content_arr['cp_name'];
				$support_contact = "8855022798";

				$msg = "Hi " . $cp_name . ", Welcome to CPBroadcast! Your onboarding is now complete. We're excited to have you on board. If you need any help, feel free to reach out to us at " . $support_contact . ". Regards CPBroadcast Powered By Salesprosys.";
			}

			$msg_return = false;
			//send sms
			if (!empty($msg)) {

				//Make live is pending. Changes are done
				//$contact = "8788093785";
				/* Yii::$app->digiSms->DigiSmsFn("sms.digimiles.in", "", "di78-rajum", "digimile", "ADTYDP", $msg, $contact, "0", "1", "1107172586251458411", "1501604490000038550");

				$reportingArr = Yii::$app->digiSms->broadcast(); */

				//API updated on 30-4-2025
				$msg_params['message'] = $msg;
				$msg_params['to'] = $contact;
				$reportingArr = Yii::$app->digiSms->cpbroadcast($msg_params);





				/* var_dump($reportingArr);
				exit; */
				//need to add conditions
				$msg_return = 'otp sent';
			}
			return $msg_return;
		} else {
			return false;
		}
	}

	public function addlog($formdata)
	{
		$error_model = new LogError();
		$formerrordata['LogError'] = [];
		$formerrordata['LogError']['url'] = \Yii::$app->request->url;
		$formerrordata['LogError']['post_data'] = $formdata['post_data'];
		$formerrordata['LogError']['error'] = $formdata['error'];
		$formerrordata['LogError']['created_on'] = date('Y-m-d H:i:s');
		if (!empty($formdata['user_data'])) {
			$formerrordata['LogError']['user_data'] = $formdata['user_data'];
		}
		if ($error_model->load($formerrordata)) {
			if ($error_model->save()) {
			} else {
				var_dump($error_model->getErrors($formerrordata));
				exit;
			}
		} else {
			var_dump($error_model->getErrors($formerrordata));
			exit;
		}
	}

	public function apikey_verify($headers)
	{
		$apikey = '';
		if (!empty($headers)) {
			$apikey = $headers->get('apikey');
			$apk_type = "1";
			$get_apk_type = $headers->get('channelType');
			if (trim($get_apk_type) == "2") {
				$apk_type = "2";
			} else if (trim($get_apk_type) == "Android") {
				$apk_type = "1";
			}
			$apk_version = $headers->get('version');
		}
		if (!empty($apikey)) {
			if ($apikey == 'jobin') {
				$get_logged_user = SmCp::findOne([
					'sm_cp_id' => 2,
					'status' => 1,
				]);
			} else {
				$get_logged_user = SmCp::findOne([
					'apikey' => $apikey,
					'status' => 1,
					'is_logged' => 1,
					'is_deleted' => 0
				]);
				//Need to comment once live
				if (empty($get_logged_user)) {
					$get_logged_user = SmCp::findOne([
						'contact' => $apikey,
						'status' => 1,
						'is_deleted' => 0
					]);
				}
			}


			if (!empty($get_logged_user->sm_cp_id)) {

				$get_logged_user->apk_type = $apk_type;
				$get_logged_user->apk_version = $apk_version;
				$get_logged_user->save();

				$data['sm_cp_data'] = $get_logged_user;
			} else {
				$data['status'] = 2;
				$error_data['code'] = 'INVALID_APIKEY';
				$error_data['message'] = str_replace("%", $apikey, \Yii::$app->params['INVALID_APIKEY']);
				//$error['error'] = $error;
				$data['error'] = $error_data;
			}
		} else {
			$data['status'] = 2;
			$error_data['code'] = \Yii::$app->params['INVALID_PARAM_code'];
			$error_data['message'] = \Yii::$app->params['INVALID_PARAM_message'];
			//$error['error'] = $error;
			$data['error'] = $error_data;
		}
		return $data;
	}
}
