<?php

namespace App\Http\Controllers\Frontend;
use App\Http\Controllers\Controller;
use App\Repositories\Frontend\ServiceRepository;
use App\Repositories\Frontend\CityRepository;
use App\Repositories\Frontend\ServiceProviderCityRepository;
use App\Repositories\Frontend\Auth\UserRepository;
use App\Repositories\Frontend\QuotationRepository;
use App\Repositories\Frontend\QuotationToImagesRepository;
use App\Repositories\Frontend\QuotationToSpRepository;
use Illuminate\Support\Facades\Mail;

/**
 * Class CronController.
 */
class CronController extends Controller
{
    /**
     * @var ServiceRepository
     * @var CityRepository
     * @var UserRepository
     * @var QuotationRepository
     * @var QuotationToImagesRepository
     * @var QuotationToSpRepository
     */
    protected $serviceRepository;
    protected $cityRepository;
    protected $userrepository;
    protected $quotationRepository;
    protected $qotationToImagesRepository;
    protected $quotationToSpRepository;

    /**
     * UserController constructor.
     *
     * @param ServiceRepository $serviceRepository
     * @param CityRepository $cityRepository
     * @param UserRepository $userrepository
     * @param QuotationRepository $quotationRepository
     * @param QuotationToImagesRepository $qotationToImagesRepository
     * @param quotationToSpRepository $quotationToSpRepository
     */
    public function __construct(ServiceRepository $serviceRepository, CityRepository $cityRepository, UserRepository $userrepository, QuotationRepository $quotationRepository, QuotationToImagesRepository $qotationToImagesRepository, QuotationToSpRepository $quotationToSpRepository)
    {
        $this->serviceRepository = $serviceRepository;
        $this->cityRepository = $cityRepository;
        $this->userRepository = $userrepository;
        $this->quotationRepository = $quotationRepository;
        $this->qotationToImagesRepository = $qotationToImagesRepository;
        $this->quotationToSpRepository = $quotationToSpRepository;
        $this->fromname = config('app.admin_name');
        $this->fromemail = config('app.admin_email');
    }


    /**
     * @return \Illuminate\Cron
     */
    public function four_hour_reply()
    {
        $quotations = $this->quotationRepository->getAllByCondition(array('status'=>0));
        if($quotations) {
            foreach ($quotations as $key => $value) {
                $last_time = $value->created_at;
                if($value->cron_firing_time) {
                    $last_time = $value->cron_firing_time;
                }
                if((strtotime($last_time)+(60*60*4) < time()) && (strtotime($last_time)+(60*60*5) > time()) ) {
                    //echo '<pre>';print_r($value);
                    $serviceProviders = $this->quotationToSpRepository->getAllByCondition(array('quotation_id'=>$value->id));
                    $userdetails = $this->userRepository->findById(array('id'=>$value->posted_id));
                    $cityDetails =  $this->cityRepository->getAllById($value->city_id);
                    $serviceDetails =  $this->serviceRepository->getAllById($value->city_id);
                    if($serviceProviders) {
                        foreach ($serviceProviders as $k => $v) {
                            $serviceProvidersdetails = $this->userRepository->findById(array('id'=>$v->serviceprovider_id));
                            $to = $serviceProvidersdetails->email;
                            $email_text='   <tr>
                                                <td style="padding: 40px; font-family: sans-serif; font-size: 15px; mso-height-rule: exactly; line-height: 20px;color: #333; ">
                                                   <p>Dear <span style="">'.$serviceProvidersdetails->first_name.' '.$serviceProvidersdetails->last_name.'</span> </p>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td style="font-family: sans-serif; color: #333; padding: 0px 40px 40px; font-size: 16px; line-height: 30px;">
                                                   <p>We are informing you that, there is a User posted quotation for you, if you inrested please find it.</p>
                                                   <p>Quotation details follows:</p>
                                                   <p>Quotation ID: '.$value->id.'</p>
                                                   <p>User Name: '.$userdetails->first_name.' '.$userdetails->last_name.'</p>
                                                   <p>Quotation Date: '.date('Y-m-d H:i:s').'</p>
                                                   <p>Quotation City: '.$cityDetails->city_name.'</p>
                                                   <p>Quotation Service: '.$serviceDetails->category_name.'</p>
                                                   <p>Quotation Message: '.$value->quotation_message.'</p>
                                                </td>
                                            </tr>
                                            <tr>
                                                <td style="font-family: sans-serif; color: #333; padding: 0px 40px 40px; font-size: 16px; line-height: 30px;">
                                                   <p>Stay connected with us. We appreciate very much your trust in us.</p>
                                                   <p>Please do not hesitate to contact us for any other requests.</p>
                                                </td>
                                            </tr>';
                                    //echo $to.'|'.$email_text; die;
                            $data['email_text'] = $email_text;    
                            Mail::send('frontend.mail.email_template', $data, function($message) use ($to)
                            {
                                $message->from($this->fromemail, $this->fromname);
                                $message->to($to);
                                $message->subject('Quotation post mail');
                            });
                            $this->quotationRepository->update(array('id'=>$value->id),array('cron_firing_time'=>date('Y-m-d H:i:s')));
                        }
                    }
                }
            }
        }
    }
    /**
     * @return \Illuminate\Cron
     */
    public function emails()
    {
        $email_text='   <tr>
                            <td style="padding: 40px; font-family: sans-serif; font-size: 15px; mso-height-rule: exactly; line-height: 20px;color: #333; ">
                               <p>Dear <span style="">Milan Rock</span> </p>
                            </td>
                        </tr>
                        <tr>
                            <td style="font-family: sans-serif; color: #333; padding: 0px 40px 40px; font-size: 16px; line-height: 30px;">
                               <p>We are informing you that, there is a User posted quotation for you, if you inrested please find it.</p>
                               <p>Quotation details follows:</p>
                               <p>Quotation ID: 112</p>
                               <p>User Name: Sayan Rock</p>
                               <p>Quotation Date: 31-01-2019 00:00:00</p>
                               <p>Quotation City: Augura</p>
                               <p>Quotation Service: Plumber</p>
                               <p>Quotation Message: Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test </p>
                            </td>
                        </tr>
                        <tr>
                            <td style="font-family: sans-serif; color: #333; padding: 0px 40px 40px; font-size: 16px; line-height: 30px;">
                               <p>Stay connected with us. We appreciate very much your trust in us.</p>
                               <p>Please do not hesitate to contact us for any other requests.</p>
                            </td>
                        </tr>';
        $data['email_text'] = $email_text;
        return view('frontend.mail.email_template',['email_text'=>$email_text]);
    }
}
