<?php

namespace Modules\ContactMessage\app\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Rules\CustomRecaptcha;
use App\Traits\GlobalMailTrait;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Modules\ContactMessage\app\Models\ComplainMessage;

class ComplainMessageController extends Controller {
    use GlobalMailTrait;
    public function store(Request $request) {
        $setting = cache()->get('setting');
        $validator = Validator::make($request->all(), [
            'name'                 => 'required',
            'email'                => 'required',
            'mobile'                => 'required',
            'subject'              => 'required',
            'message'              => 'required',
            'g-recaptcha-response' => $setting?->recaptcha_status == 'active' ? ['required', new CustomRecaptcha()] : '',
        ], [
            'name.required'                 => __('Name is required'),
            'email.required'                => __('Email is required'),
            'mobile.required'              => __('Mobile Number is required'),
            'subject.required'              => __('Subject is required'),
            'message.required'              => __('Message is required'),
            'g-recaptcha-response.required' => __('Please complete the recaptcha to submit the form'),
        ]);
        if ($validator->fails()) {
            //return response()->json(['status' => false, 'message' => $validator->errors()], 422);
			return redirect()->back()
                ->withErrors($validator)
                ->withInput();
        }
        $new_message = new ComplainMessage();
        $new_message->customer = $request->customer;
        $new_message->account = $request->account;
		$new_message->determination = $request->determination;
        $new_message->name = $request->name;
        $new_message->email = $request->email;
        $new_message->mobile = $request->mobile;
        $new_message->subject = $request->subject;
        $new_message->message = $request->message;
		$new_message->ip = $request->ip();
        $new_message->save();
		$month = \Carbon\Carbon::parse($new_message->created_at)->format('/m/Y');
		$ref = "BSI-".$fourDigit = str_pad($new_message->id, 4, '0', STR_PAD_LEFT).$month;
        try {
            $str_replace = [
                'customer'    => $new_message->customer != "yes"?"Customer":"Non Customer",
                'id'   => $ref,
                'account'   => $new_message->account,
                'name'    => $new_message->name,
                'email'   => $new_message->email,
                'mobile' => $new_message->mobile,
                'subject' => $new_message->subject,
                'message' => $new_message->message,
            ];
			$customer_is = $new_message->customer == "yes"?"Customer":"Non Customer";
			$customer = $new_message->customer == "yes"?$new_message->account:"";
			
			$receiver = "ijtaba.husain@bsi.co.ae";
			//$receiver = "atiqerchowdhury@gmail.com";
			
			/*$receiver = [
				"businesscare@bsi.co.ae",
				"ijtaba.husain@bsi.co.ae"
			];*/
			$subject1 = getSessionLanguage() == 'en'?"Case submitted under reference no ".$ref:"الموضوع: الشكوى / الاقتراح المقدم رقم  ".$ref;
			$message1 = getSessionLanguage() == 'en'?"Dear Sir/Madam,":"سيدي العزيز / سيدتي،";
			$message1 .= getSessionLanguage() == 'en'?"A case under Reference No ".$ref." has been successfully submitted by the following customer, please find the detail below.":"تم تقديم الشكوى / الاقتراح رقم ".$ref." بنجاح من قبل العميل التالي.  يرجى الاطلاع على التفاصيل أدناه.";
			$message1 .= "<br><br>";
			$message1 .= getSessionLanguage() == 'en'?"<b>Case submitted by:</b> ".$customer_is:"تفاصيل مقدم الشكوى/ الاقتراح".$customer_is;
			$message1 .= "<br>";
			$message1 .= getSessionLanguage() == 'en'?"<b>Are you People of Determination:</b> ".$new_message->determination:"هل أنتم من أصحاب الهمم؟".$new_message->determination;
			$message1 .= "<br>";
			$message1 .= getSessionLanguage() == 'en'?"<b>Name:</b> ".$new_message->name:"الاسم: ".$new_message->name;
			if($new_message->customer == "yes"){
				$message1 .= "<br>";
				$message1 .= getSessionLanguage() == 'en'?"<b>Account Number:</b> ".$new_message->account:"رقم الحساب: ".$new_message->account;
			}
			$message1 .= "<br>";
			$message1 .= getSessionLanguage() == 'en'?"<b>Contact number:</b> +971 ".$new_message->mobile:"رقم الاتصال: ".$new_message->mobile;
			$message1 .= "<br>";
			$message1 .= getSessionLanguage() == 'en'?"<b>Email address:</b> ".$new_message->email:"عنوان البريد الإلكتروني: ".$new_message->email;
			$message1 .= "<br>";
			$message1 .= getSessionLanguage() == 'en'?"<b>Case Type:</b> ".$new_message->subject:"الموضوع: ".$new_message->subject;
			$message1 .= "<br>";
			$message1 .= getSessionLanguage() == 'en'?"<b>Customer Complaint or Suggestion:</b> ".$new_message->message:"النص المقدم من العميل: ".$new_message->message;
			$message1 .= "<br><br>";
			$message1 .= getSessionLanguage() == 'en'?"We kindly request you to investigate this matter and provide your response directly to the customer within the agreed time frame.":"نرجو منك التكرم بالتحقيق في هذا الأمر وتقديم ردك مباشرة إلى العميل خلال الإطار الزمني المتفق عليه.";
			$message1 .= "<br><br>";
			$message1 .= getSessionLanguage() == 'en'?"Regards,":"مع التحيات،";
			$message1 .= "<br>";
			$message1 .= getSessionLanguage() == 'en'?"Bank Saderat Iran , UAE":"بنك صادرات إيران - الإمارات العربية المتحدة";
            //[$subject, $message] = $this->fetchEmailTemplate('contact_team_mail', $str_replace);
            $this->sendMail($receiver, $subject1, $message1);
			//thank you email
			$subject2 = getSessionLanguage() == 'en'?"Your case no ".$ref." submitted.":"الموضوع: الشكوى / الاقتراح المقدم رقم ".$ref;
			$message2 = getSessionLanguage() == 'en'?"Dear Mr/Ms ".$new_message->name:"عزيزي السيد / السيدة ".$new_message->name;
			$message2 .= "<br>";
			$message2 .= getSessionLanguage() == 'en'?"Your case with Reference No REF- ".$ref." has been successfully registered.":"تم تسجيل الشكوى / الاقتراح رقم  ".$ref." بنجاح";
			$message2 .= "<br><br>";
			$message2 .= getSessionLanguage() == 'en'?"We value your feedback and will ensure your concern is addressed promptly.":" نحن نقدر ملاحظاتك وسنضمن معالجة مخاوفك على الفور.";
			$message2 .= "<br>";
			$message2 .= getSessionLanguage() == 'en'?"You can expect a callback or response shortly.":"سنعاود الاتصال او نقوم بالرد عليك قريبا،";
			$message2 .= "<br><br>";
			$message2 .= getSessionLanguage() == 'en'?"Thank you for reaching out to us.":"شكرا لك على التواصل معنا";
			$message2 .= "<br><br>";
			$message2 .= getSessionLanguage() == 'en'?"Regards,":"مع التحيات";
			$message2 .= getSessionLanguage() == 'en'?"Bank Saderat Iran, UAE":"بنك صادرات إيران - الإمارات العربية المتحدة";
			//[$subject, $message] = $this->fetchEmailTemplate('order_status', $str_replace);
			$receiver1 = $new_message->email;
			$this->sendMail($receiver1, $subject2, $message2);
        } catch (\Exception $e) {
            info($e->getMessage());
        }
        /*return response()->json([
            'success' => true,
            'message' => __('Message Sent Successfully'),
        ],200);*/
		return redirect('/page/thank-you')->with('success', __('Message Sent Successfully'));
    }
}
