<?php

namespace App\Listeners;

use App\Events\CompanySubmissionEvent;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Mail;
use App\Messaging;
use App\User;
use App\Mail\UserRegister;
use Modules\UserManagement\Entities\Profile;
use Modules\UserManagement\Entities\Role;
use Modules\Backend\Entities\Company;

class CompanySubmissionListener
{
    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @param  CompanySubmissionEvent  $event
     * @return void
     */
    public function handle(CompanySubmissionEvent $event)
    {
      //send notification to all admins


       $this->notifyAdmin($event->company);

      return true;
       
  
    }
    public function notifyAdmin($user){
          $admins=$this->getAdmins();
           foreach($admins as $admin){
        $model=new Messaging();
        $model->receiver_id=$admin->user_id;
        $model->sender_id=$user->user_id;
        $model->subject="Pending Approval";
        $model->content="Dear ".$admin->name. " new Company has been submitted for approval with the folowing details<br> :Organization Name: ".$user->company_name."<br> Organization Telephone :".$user->company_phone;
        $model->status="Unread";
        $model->flag="notification";
        $model->key=str_random(13);
        $model->save();

           }

         
        return true;
           
      }


      public function getAdmins(){

      $Admin=User::join('role_user','role_user.user_id','=','users.id')
                           ->join('roles','roles.id','=','role_user.role_id')
                            ->where('roles.name','=','Admin')
                             ->get();

                             return $Admin;


      }

}
