<?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\ContactMessage;

class ContactMessageController extends Controller {
    use GlobalMailTrait;
    public function store(Request $request) {
        $setting = cache()->get('setting');
        $validator = Validator::make($request->all(), [
            'name'                 => 'required',
            'email'                => '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'),
            '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 ContactMessage();
        $new_message->customer = $request->customer;
        $new_message->account = $request->account;
        $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->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 = [
                'customer1'    => $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";
			
            $receiver = "ijtaba.husain@bsi.co.ae";
			//$receiver = "atiqerchowdhury@gmail.com";
			/*$receiver = [
				"enquiry@bsi.co.ae",
				"ijtaba.husain@bsi.co.ae"
			];*/
			$subject2 = getSessionLanguage() == 'en'?"Enquiry submitted under reference no ".$ref:"الموضوع: الاستفسار المقدم رقم ".$ref; 
			$message2 = getSessionLanguage() == 'en'?"<p>Dear Sir/Madam,</p>":"<p>سيدي العزيز / سيدتي،</p>";
			$message2 .= getSessionLanguage() == 'en'?"<p>An enquiry under Reference No ".$ref." has been successfully submitted by the following person, please find the detail below.":"تم تقديم الاستفسار رقم ".$ref." بنجاح من قبل العميل التالي.  يرجى الاطلاع على التفاصيل أدناه.";
			$message2 .= getSessionLanguage() == 'en'?"<p><b>Enquiry submitted by:</b> ".$customer_is."</p>":"<p>تفاصل مقدم الاستفسار: ".$customer_is."</p>";
			$message2 .= getSessionLanguage() == 'en'?"<p><b>Name:</b> ".$new_message->name."</p>":"<p>الاسم : ".$new_message->name."</p>";
			if($new_message->customer == "yes"){
				$message2 .= getSessionLanguage() == 'en'?"<p><b>Account Number:</b> ".$new_message->account."</p>":"<p>رقم الحساب: ".$new_message->account."</p>";
			}
			$message2 .= getSessionLanguage() == 'en'?"<p><b>Contact number:</b> ".$new_message->mobile."</p>":"<p>رقم الاتصال: ".$new_message->mobile."</p>";
			$message2 .= getSessionLanguage() == 'en'?"<p><b>Email address:</b> ".$new_message->email."</p>":"<p>عنوان البريد الإلكتروني: ".$new_message->email."</p>";
			$message2 .= getSessionLanguage() == 'en'?"<p><b>Subject:</b> ".$new_message->subject."</p>":"<p>الموضوع: ".$new_message->subject."</p>";
			$message2 .= getSessionLanguage() == 'en'?"<p><b>Customer enquiry:</b> ".$new_message->message."</p>": "<p>استفسار العملاء: ".$new_message->message."</p>";
            $message2 .= "<br>";
			$message2 .= getSessionLanguage() == 'en'?"<p>We kindly request you to review the details of above matter and provide your suitable response directly to the customer as soon as possible</p>":"<p>نرجو منك التكرم بمراجعة تفاصيل الأمر أعلاه وتقديم ردك المناسب مباشرة إلى العميل في أقرب وقت ممكن.</p>";
			$message2 .= getSessionLanguage() == 'en'?"<p>Regards,</p>":"<p>مع اطيب التحيات،</p>";
			$message2 .= getSessionLanguage() == 'en'?"<p>Bank Saderat Iran , UAE</p>":"<p> بنك صادرات إيران - الإمارات العربية المتحدة</p>";
            //[$subject, $message] = $this->fetchEmailTemplate('contact_mail', $str_replace);
            $this->sendMail($receiver, $subject2, $message2);
			
			//thank you email
			$subject1 = getSessionLanguage() == 'en'?"Your Enquiry under reference no ".$ref." submitted.":"الموضوع: الاستفسار المقدم رقم ".$ref;
			$message1 = getSessionLanguage() == 'en'?"<p>Dear Mr/Ms ".$new_message->name."</p>":"<p>عميلنا العزيز ".$new_message->name."</p>";
			$message1 .= getSessionLanguage() == 'en'?"<p>Your enquiry under Reference No ".$ref." has been successfully registered.</p>":"<p> تم تسجيل الاستفسار رقم ".$ref." بنجاح.</p>";
			$message1 .= getSessionLanguage() == 'en'?"<p>We value our customers and will ensure your concern is addressed promptly.</p>":"<p>نحن نقدر عملائنا وسنضمن معالجة مخاوفك على الفور.</p>";
			$message1 .= getSessionLanguage() == 'en'?"<p>You can expect a response shortly. </p>":"<p>سنقوم بالرد عليك قريبا.</p>";
			$message1 .= getSessionLanguage() == 'en'?"<p>Thank you for reaching out to us.</p>":"<p>شكرا لك على التواصل معنا.</p>";
			
			$message1 .= getSessionLanguage() == 'en'?"<p>Kind regards,</p>":"<p>مع أطيب التحيات,</p>";
			$message1 .= getSessionLanguage() == 'en'?"<p>Bank Saderat Iran, UAE</p>":"<p> بنك صادرات إيران - الإمارات العربية المتحدة</p>";
			//[$subject, $message] = $this->fetchEmailTemplate('reject_payment', $str_replace);
			$receiver1 = $new_message->email;
			$this->sendMail($receiver1, $subject1, $message1);
        } 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'));
    }
}
