/**
  * Handle the event.
  *
  * @param  ScheduleResponse  $event
  * @return void
  */
 public function handle(ScheduleResponse $event)
 {
     //
     // if(!$response_templates = ResponseTemplate::where('trigger_event',1)->orderBy('created_at','desc')->get())
     // {
     //     return false;
     // }
     $response_templates = ResponseTemplate::where('trigger_event', 1)->orderBy('created_at', 'desc')->get();
     $contact = Contact::find($event->inquiry->user_id);
     foreach ($response_templates as $t) {
         $this->schedule->create($t, $contact);
     }
     \Mail::raw('Scheduled Responses were created for ' . $contact->fullname, function ($m) {
         $m->to('*****@*****.**', 'Tim Bradshaw')->from('*****@*****.**', 'LTD Sailing')->subject('The Prospect Inquiry Event Handler Fired to Create Scheduled Responses');
     });
 }
 /**
  * Display the specified resource.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function show(Contact $contact)
 {
     //
     $user = User::find($contact->id);
     if (!$user->types()->where('user_types.id', 1)->first()) {
         $user->types()->attach([1]);
     }
     $contact = Contact::find($user->id);
     // return $contact;
     $schedules = $this->schedules->contact($contact);
     //Gets any Scheduled Responses for the contact grouped by Template
     // $template_ids = '0,';
     $template_ids = [];
     $template_group_status = [];
     // dd($template_group_status);
     // $template_ids = rtrim($template_ids,',');
     if ($schedules) {
         foreach ($schedules as $s) {
             //If any response schedule is set to 'Paused' set a status for that templateid to paused.
             if ($s->status == 'paused') {
                 !isset($template_group_status[$s->template->id]) ? $template_group_status[$s->template->id] = ['template_id' => $s->template->id, 'status' => 'paused'] : null;
             }
             $template_ids[] = $s->template->id;
         }
         $response_templates = \App\ResponseTemplate::whereIn('id', $template_ids)->get();
     }
     // $schedules = new \App\ResponseSchedule;
     // $response_templates = new \App\ResponseTemplate;
     return view('contacts.show', ['title' => $contact->fullname, 'contact' => $contact, 'schedules' => $schedules, 'response_templates' => $response_templates, 'template_group_status' => $template_group_status]);
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     //
     // return $request->all()
     $template = ResponseTemplate::find($id);
     $template->update($request->only('name', 'trigger_event', 'user_type_id'));
     $inputTemplate = $request->input('template');
     $inputSubject = $request->input('subject');
     $inputDetail = $request->input('detail_id');
     foreach ($request->input('days') as $key => $detail) {
         //Check if it exists and update
         $templatedetail = ResponseTemplateDetail::find($inputDetail[$key]);
         $templatedetail->number_of_days = $detail;
         $templatedetail->template = $inputTemplate[$key];
         $templatedetail->subject = $inputSubject[$key];
         $template->details()->save($templatedetail);
     }
     return redirect()->route('admin.response_templates.index');
 }