<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\WashDetail;
use App\Models\CurrencyMaster;
use App\Models\CarWashOwner;
use App\Models\BodyType;
use App\Models\WashCategoryBodyType;
use App\Models\WashCategory;
use App\Models\CarOwnerCar;
use App\Models\CarOwner;
use Carbon\Carbon;
use DB;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Validator;

class CarWashController extends Controller
{
    public function __construct(){
    }


    public function index(){
    }

    public function totalCarWashed(Request $request){
        $validate = Validator::make($request->all(), 
            [
                'cwo_id' => 'required',
                // 'start_date' => 'required',
                // 'end_date' => 'required',
            ]);
            
        if($validate->fails()){
            $errorString = implode(",",$validate->messages()->all());
            return response()->json([
                'success' => 0,
                // 'message' => $validate->errors(),
                'message' => $errorString,
            ]);
        }

        $cwo_id = $request->input('cwo_id');
        // $start_date = $request->input('start_date'); // format -> yyyy-mm-dd, today or less than today
        // $end_date = $request->input('end_date'); // format -> yyyy-mm-dd, today
        /*$totalCarWashed = WashDetail::join('wash_categories','wash_categories.id','=','wash_details.wash_type_id')
            ->where('wash_categories.cwo_id', $cwo_id)
            ->whereDate('wash_details.date_washed', '>=', $start_date)
            ->whereDate('wash_details.date_washed', '<=', $end_date)
            ->count();*/

        $today = date('Y-m-d');  
        
        /***************** today starts *********************/ 
        $todayTotalCarWashed = WashDetail::join('wash_categories','wash_categories.id','=','wash_details.wash_type_id')
            ->where('wash_categories.cwo_id', $cwo_id)
            ->whereDate('wash_details.date_washed', '=', $today)
            ->count(); 
        /***************** today ends *********************/  

        /**************** month to date starts ****************/
        $one_month_ago = date('Y-m-d', strtotime('-1 month', strtotime($today)));
        $monthToDateTotalCarWashed = WashDetail::join('wash_categories','wash_categories.id','=','wash_details.wash_type_id')
            ->where('wash_categories.cwo_id', $cwo_id)
            ->whereDate('wash_details.date_washed', '>=', $one_month_ago)
            ->whereDate('wash_details.date_washed', '<=', $today)
            ->count();
        /**************** month to date ends ****************/

        /**************** month to date starts ****************/
        $one_year_ago = date('Y-m-d', strtotime('-1 year', strtotime($today)));
        $yearToDateTotalCarWashed = WashDetail::join('wash_categories','wash_categories.id','=','wash_details.wash_type_id')
            ->where('wash_categories.cwo_id', $cwo_id)
            ->whereDate('wash_details.date_washed', '>=', $one_year_ago)
            ->whereDate('wash_details.date_washed', '<=', $today)
            ->count();
        /**************** month to date ends ****************/

        return response()->json([
            'success' => 1,
            'message' => 'Success',
            // 'totalCarWashed' => $totalCarWashed,
            'todayTotalCarWashed' => $todayTotalCarWashed,
            'monthToDateTotalCarWashed' => $monthToDateTotalCarWashed,
            'yearToDateTotalCarWashed' => $yearToDateTotalCarWashed
        ]);

    }

    public function totalRevenue(Request $request){
        $validate = Validator::make($request->all(), 
            [
                'cwo_id' => 'required',
                // 'start_date' => 'required',
                // 'end_date' => 'required',
                // 'payment_mode' => 'required', //cash/card
            ]);
            
        if($validate->fails()){
            $errorString = implode(",",$validate->messages()->all());
            return response()->json([
                'success' => 0,
                // 'message' => $validate->errors(),
                'message' => $errorString,
            ]);
        }

        $cwo_id = $request->input('cwo_id');
        // $start_date = $request->input('start_date'); // format -> yyyy-mm-dd, today or less than today
        // $end_date = $request->input('end_date'); // format -> yyyy-mm-dd, today
        // $payment_mode = $request->input('payment_mode'); //cash/card
        /*$totalRevenue = WashDetail::select(DB::raw('SUM(wash_details.amount) as total_revenue'))
            ->join('wash_categories','wash_categories.id','=','wash_details.wash_type_id')
            ->join('cwo_master','cwo_master.id','=','wash_categories.cwo_id')
            ->where('wash_categories.cwo_id', $cwo_id)
            ->where('wash_details.payment_details', $payment_mode)
            ->whereDate('wash_details.date_washed', '>=', $start_date)
            ->whereDate('wash_details.date_washed', '<=', $end_date)
            ->get();
        // echo "<pre>";print_r($totalRevenue->toArray());exit;
        $total_revenue = $totalRevenue[0]->total_revenue != '' ? $totalRevenue[0]->total_revenue : 0;*/

        $getCurrency = CarWashOwner::leftJoin('currency_masters','currency_masters.id','=','cwo_master.currency_id')->select('currency_masters.code', 'currency_masters.symbol')->where('cwo_master.id', $cwo_id)->get();
        // echo "<pre>";print_r($getCurrency->toArray());exit;
        $today = date('Y-m-d');

        /***************** today starts *********************/
        $todayRevenueInCash = WashDetail::select(DB::raw('SUM(wash_details.amount) as total_revenue'))
            ->join('wash_categories','wash_categories.id','=','wash_details.wash_type_id')
            ->join('cwo_master','cwo_master.id','=','wash_categories.cwo_id')
            ->where('wash_categories.cwo_id', $cwo_id)
            ->where('wash_details.payment_details', 'cash')
            ->whereDate('wash_details.date_washed', '=', $today)
            ->get();
        // echo "<pre>";print_r($todayRevenueInCash->toArray());exit;
        $todayRevenueInCash = $todayRevenueInCash[0]->total_revenue != '' ? $todayRevenueInCash[0]->total_revenue : 0;

        $todayRevenueInCard = WashDetail::select(DB::raw('SUM(wash_details.amount) as total_revenue'))
            ->join('wash_categories','wash_categories.id','=','wash_details.wash_type_id')
            ->join('cwo_master','cwo_master.id','=','wash_categories.cwo_id')
            ->where('wash_categories.cwo_id', $cwo_id)
            ->where('wash_details.payment_details', 'card')
            ->whereDate('wash_details.date_washed', '=', $today)
            ->get();
        // echo "<pre>";print_r($todayRevenueInCard->toArray());exit;
        $todayRevenueInCard = $todayRevenueInCard[0]->total_revenue != '' ? $todayRevenueInCard[0]->total_revenue : 0;
        /******************* today ends ************************/

        /**************** month to date starts ****************/
        $one_month_ago = date('Y-m-d', strtotime('-1 month', strtotime($today)));
        $monthAgoRevenueInCash = WashDetail::select(DB::raw('SUM(wash_details.amount) as total_revenue'))
            ->join('wash_categories','wash_categories.id','=','wash_details.wash_type_id')
            ->join('cwo_master','cwo_master.id','=','wash_categories.cwo_id')
            ->where('wash_categories.cwo_id', $cwo_id)
            ->where('wash_details.payment_details', 'cash')
            ->whereDate('wash_details.date_washed', '>=', $one_month_ago)
            ->whereDate('wash_details.date_washed', '<=', $today)
            ->get();
        $monthAgoRevenueInCash = $monthAgoRevenueInCash[0]->total_revenue != '' ? $monthAgoRevenueInCash[0]->total_revenue : 0; 
        
        $monthAgoRevenueInCard = WashDetail::select(DB::raw('SUM(wash_details.amount) as total_revenue'))
            ->join('wash_categories','wash_categories.id','=','wash_details.wash_type_id')
            ->join('cwo_master','cwo_master.id','=','wash_categories.cwo_id')
            ->where('wash_categories.cwo_id', $cwo_id)
            ->where('wash_details.payment_details', 'card')
            ->whereDate('wash_details.date_washed', '>=', $one_month_ago)
            ->whereDate('wash_details.date_washed', '<=', $today)
            ->get();
        $monthAgoRevenueInCard = $monthAgoRevenueInCard[0]->total_revenue != '' ? $monthAgoRevenueInCard[0]->total_revenue : 0;    
        /**************** month to date ends *******************/

        /**************** year to date starts ****************/
        $one_year_ago = date('Y-m-d', strtotime('-1 year', strtotime($today)));
        $yearAgoRevenueInCash = WashDetail::select(DB::raw('SUM(wash_details.amount) as total_revenue'))
            ->join('wash_categories','wash_categories.id','=','wash_details.wash_type_id')
            ->join('cwo_master','cwo_master.id','=','wash_categories.cwo_id')
            ->where('wash_categories.cwo_id', $cwo_id)
            ->where('wash_details.payment_details', 'cash')
            ->whereDate('wash_details.date_washed', '>=', $one_year_ago)
            ->whereDate('wash_details.date_washed', '<=', $today)
            ->get();
        $yearAgoRevenueInCash = $yearAgoRevenueInCash[0]->total_revenue != '' ? $yearAgoRevenueInCash[0]->total_revenue : 0; 
        
        $yearAgoRevenueInCard = WashDetail::select(DB::raw('SUM(wash_details.amount) as total_revenue'))
            ->join('wash_categories','wash_categories.id','=','wash_details.wash_type_id')
            ->join('cwo_master','cwo_master.id','=','wash_categories.cwo_id')
            ->where('wash_categories.cwo_id', $cwo_id)
            ->where('wash_details.payment_details', 'card')
            ->whereDate('wash_details.date_washed', '>=', $one_year_ago)
            ->whereDate('wash_details.date_washed', '<=', $today)
            ->get();
        $yearAgoRevenueInCard = $yearAgoRevenueInCard[0]->total_revenue != '' ? $yearAgoRevenueInCard[0]->total_revenue : 0;    
        /**************** year to date ends *******************/

        

        return response()->json([
            'success' => 1,
            'message' => 'Success',
            // 'totalRevenue' => $getCurrency[0]->symbol . $total_revenue,
            // 'currency' => $getCurrency[0]->symbol
            'todayRevenueInCash' => $getCurrency[0]->symbol . $todayRevenueInCash,
            'todayRevenueInCard' => $getCurrency[0]->symbol . $todayRevenueInCard,
            'monthToDateRevenueInCash' => $getCurrency[0]->symbol . $monthAgoRevenueInCash,
            'monthToDateRevenueInCard' => $getCurrency[0]->symbol . $monthAgoRevenueInCard,
            'yearToDateRevenueInCash' => $getCurrency[0]->symbol . $yearAgoRevenueInCash,
            'yearToDateRevenueInCard' => $getCurrency[0]->symbol . $yearAgoRevenueInCard,
        ]);

    }

    public function todayCarWashedList(Request $request){
        $validate = Validator::make($request->all(), 
            [
                'cwo_id' => 'required',
                // 'start_date' => 'required',
                // 'end_date' => 'required',
            ]);
            
        if($validate->fails()){
            $errorString = implode(",",$validate->messages()->all());
            return response()->json([
                'success' => 0,
                // 'message' => $validate->errors(),
                'message' => $errorString,
            ]);
        }

        $cwo_id = $request->input('cwo_id');
        // $start_date = $request->input('start_date'); // format -> yyyy-mm-dd, today or less than today
        // $end_date = $request->input('end_date'); // format -> yyyy-mm-dd, today
        $today = date('Y-m-d');  

        /*$data = WashDetail::select('wash_details.id','wash_details.car_id','wash_details.entry_date','wash_details.wash_type_id','wash_details.body_type','wash_details.amount','wash_details.date_washed','wash_details.time_washed','wash_details.status','wash_details.payment_status','wash_details.payment_details','cwo_master.cwo_name','cwo_master.cwo_company','co_master.co_fname','co_master.co_lname','co_master.co_phone','users.email','co_car.car_registration_no','wash_categories.wash_name','currency_masters.symbol')
        ->join('co_car','co_car.id','=','wash_details.car_id')
        ->join('co_master','co_master.id','=','co_car.co_id')
        ->join('users','users.id','=','co_master.user_id')
        ->join('wash_categories','wash_categories.id','=','wash_details.wash_type_id')
        ->join('cwo_master','cwo_master.id','=','wash_categories.cwo_id')
        ->leftJoin('currency_masters','currency_masters.id','=','cwo_master.currency_id')
        ->orderBy('co_car.id', 'desc')
        ->get();*/

        /***************** today starts *********************/
        $carWashedList = WashDetail::select('wash_details.id','wash_details.car_id','wash_details.date_washed','wash_details.time_washed','wash_details.status','wash_details.payment_status','co_master.co_fname','co_master.co_lname','co_master.co_phone','co_car.car_registration_no','wash_categories.wash_name')
        ->join('co_car','co_car.id','=','wash_details.car_id')
        ->join('co_master','co_master.id','=','co_car.co_id')
        ->join('users','users.id','=','co_master.user_id')
        ->join('wash_categories','wash_categories.id','=','wash_details.wash_type_id')
        ->join('cwo_master','cwo_master.id','=','wash_categories.cwo_id')
        ->leftJoin('currency_masters','currency_masters.id','=','cwo_master.currency_id')
        ->where('wash_categories.cwo_id', $cwo_id)
        // ->whereDate('wash_details.date_washed', '>=', $start_date)
        // ->whereDate('wash_details.date_washed', '<=', $end_date)
        ->whereDate('wash_details.date_washed', '=', $today)
        ->orderBy('co_car.id', 'desc')
        ->get();
        // echo "<pre>";print_r($carWashedList->toArray());exit;   
        /***************** today ends *********************/ 

        $dataDisplay=[];
        $dataArray = [];
        if($carWashedList != ''){
            foreach ($carWashedList as $d) {
                $dataDisplay['id'] = $d->id;
                $dataDisplay['car_id'] = $d->car_id;
                $dataDisplay['co_fname'] = $d->co_fname;
                $dataDisplay['co_lname'] = $d->co_lname;
                $dataDisplay['co_phone'] = $d->co_phone;
                $dataDisplay['car_registration_no'] = $d->car_registration_no;
                $dataDisplay['wash_name'] = $d->wash_name;
                $dataDisplay['date_washed']  = date("d/m/Y", strtotime($d->date_washed)); 
                $dataDisplay['time_washed']  = date("h:i a", strtotime($d->time_washed)); 
                if($d->payment_status == 1){
                    $dataDisplay['payment_status'] = 'Paid';    
                } else {
                    $dataDisplay['payment_status'] = 'Not Paid';   
                }
                if($d->status == 0){
                    $dataDisplay['status'] = 'Car in-queue';    
                }
                if($d->status == 1){
                    $dataDisplay['status'] = 'Car Wash Started';    
                }
                if($d->status == 2){
                    $dataDisplay['status'] = 'Drying';    
                }
                if($d->status == 3){
                    $dataDisplay['status'] = 'Car Wash Completed';    
                }

                $dataArray[] = $dataDisplay;
            }
        }

        return response()->json([
            'success' => 1,
            'message' => 'Success',
            'carWashedList' => $dataArray
        ]);

    }

    public function monthToDateCarWashedList(Request $request){
        $validate = Validator::make($request->all(), 
            [
                'cwo_id' => 'required'
            ]);
            
        if($validate->fails()){
            $errorString = implode(",",$validate->messages()->all());
            return response()->json([
                'success' => 0,
                // 'message' => $validate->errors(),
                'message' => $errorString,
            ]);
        }

        $cwo_id = $request->input('cwo_id');
        $today = date('Y-m-d'); 
        $one_month_ago = date('Y-m-d', strtotime('-1 month', strtotime($today)));

        /***************** month to date starts *********************/
        $carWashedList = WashDetail::select('wash_details.id','wash_details.car_id','wash_details.date_washed','wash_details.time_washed','wash_details.status','wash_details.payment_status','co_master.co_fname','co_master.co_lname','co_master.co_phone','co_car.car_registration_no','wash_categories.wash_name')
        ->join('co_car','co_car.id','=','wash_details.car_id')
        ->join('co_master','co_master.id','=','co_car.co_id')
        ->join('users','users.id','=','co_master.user_id')
        ->join('wash_categories','wash_categories.id','=','wash_details.wash_type_id')
        ->join('cwo_master','cwo_master.id','=','wash_categories.cwo_id')
        ->leftJoin('currency_masters','currency_masters.id','=','cwo_master.currency_id')
        ->where('wash_categories.cwo_id', $cwo_id)
        ->whereDate('wash_details.date_washed', '>=', $one_month_ago)
        ->whereDate('wash_details.date_washed', '<=', $today)
        ->orderBy('co_car.id', 'desc')
        ->get();   
        /***************** month to date ends *********************/ 

        $dataDisplay=[];
        $dataArray = [];
        if($carWashedList != ''){
            foreach ($carWashedList as $d) {
                $dataDisplay['id'] = $d->id;
                $dataDisplay['car_id'] = $d->car_id;
                $dataDisplay['co_fname'] = $d->co_fname;
                $dataDisplay['co_lname'] = $d->co_lname;
                $dataDisplay['co_phone'] = $d->co_phone;
                $dataDisplay['car_registration_no'] = $d->car_registration_no;
                $dataDisplay['wash_name'] = $d->wash_name;
                $dataDisplay['date_washed']  = date("d/m/Y", strtotime($d->date_washed)); 
                $dataDisplay['time_washed']  = date("h:i a", strtotime($d->time_washed)); 
                if($d->payment_status == 1){
                    $dataDisplay['payment_status'] = 'Paid';    
                } else {
                    $dataDisplay['payment_status'] = 'Not Paid';   
                }
                if($d->status == 0){
                    $dataDisplay['status'] = 'Car in-queue';    
                }
                if($d->status == 1){
                    $dataDisplay['status'] = 'Car Wash Started';    
                }
                if($d->status == 2){
                    $dataDisplay['status'] = 'Drying';    
                }
                if($d->status == 3){
                    $dataDisplay['status'] = 'Car Wash Completed';    
                }

                $dataArray[] = $dataDisplay;
            }
        }

        return response()->json([
            'success' => 1,
            'message' => 'Success',
            'carWashedList' => $dataArray
        ]);

    }

    public function yearToDateCarWashedList(Request $request){
        $validate = Validator::make($request->all(), 
            [
                'cwo_id' => 'required'
            ]);
            
        if($validate->fails()){
            $errorString = implode(",",$validate->messages()->all());
            return response()->json([
                'success' => 0,
                // 'message' => $validate->errors(),
                'message' => $errorString,
            ]);
        }

        $cwo_id = $request->input('cwo_id');
        $today = date('Y-m-d'); 
        $one_year_ago = date('Y-m-d', strtotime('-1 year', strtotime($today)));

        /***************** year to date starts *********************/
        $carWashedList = WashDetail::select('wash_details.id','wash_details.car_id','wash_details.date_washed','wash_details.time_washed','wash_details.status','wash_details.payment_status','co_master.co_fname','co_master.co_lname','co_master.co_phone','co_car.car_registration_no','wash_categories.wash_name')
        ->join('co_car','co_car.id','=','wash_details.car_id')
        ->join('co_master','co_master.id','=','co_car.co_id')
        ->join('users','users.id','=','co_master.user_id')
        ->join('wash_categories','wash_categories.id','=','wash_details.wash_type_id')
        ->join('cwo_master','cwo_master.id','=','wash_categories.cwo_id')
        ->leftJoin('currency_masters','currency_masters.id','=','cwo_master.currency_id')
        ->where('wash_categories.cwo_id', $cwo_id)
        ->whereDate('wash_details.date_washed', '>=', $one_year_ago)
        ->whereDate('wash_details.date_washed', '<=', $today)
        ->orderBy('co_car.id', 'desc')
        ->get();   
        /***************** year to date ends *********************/ 

        $dataDisplay=[];
        $dataArray = [];
        if($carWashedList != ''){
            foreach ($carWashedList as $d) {
                $dataDisplay['id'] = $d->id;
                $dataDisplay['car_id'] = $d->car_id;
                $dataDisplay['co_fname'] = $d->co_fname;
                $dataDisplay['co_lname'] = $d->co_lname;
                $dataDisplay['co_phone'] = $d->co_phone;
                $dataDisplay['car_registration_no'] = $d->car_registration_no;
                $dataDisplay['wash_name'] = $d->wash_name;
                $dataDisplay['date_washed']  = date("d/m/Y", strtotime($d->date_washed)); 
                $dataDisplay['time_washed']  = date("h:i a", strtotime($d->time_washed)); 
                if($d->payment_status == 1){
                    $dataDisplay['payment_status'] = 'Paid';    
                } else {
                    $dataDisplay['payment_status'] = 'Not Paid';   
                }
                if($d->status == 0){
                    $dataDisplay['status'] = 'Car in-queue';    
                }
                if($d->status == 1){
                    $dataDisplay['status'] = 'Car Wash Started';    
                }
                if($d->status == 2){
                    $dataDisplay['status'] = 'Drying';    
                }
                if($d->status == 3){
                    $dataDisplay['status'] = 'Car Wash Completed';    
                }

                $dataArray[] = $dataDisplay;
            }
        }

        return response()->json([
            'success' => 1,
            'message' => 'Success',
            'carWashedList' => $dataArray
        ]);

    }

    public function changeWashStatus(Request $request){
        $validate = Validator::make($request->all(), 
            [
                'wash_id' => 'required',
                'status' => 'required',
            ]);
            
        if($validate->fails()){
            $errorString = implode(",",$validate->messages()->all());
            return response()->json([
                'success' => 0,
                // 'message' => $validate->errors(),
                'message' => $errorString,
            ]);
        }

        $wash_id = $request->input('wash_id');
        $status = $request->input('status');

        $record = WashDetail::find($wash_id);
        $record->status = $status;
        $record->save(); 

        if($status == 3){ // is car wash completed
            $wash_type_id = $record->wash_type_id;
            $getWashCat = WashCategory::where('id', $wash_type_id)->select('cwo_id')->first();
            $getCwo = CarWashOwner::where('id', $getWashCat->cwo_id)->select('cwo_name', 'cwo_company')->first();
            $cwo_name = $getCwo->cwo_name;
            $cwo_company = $getCwo->cwo_company;

            $getCar = CarOwnerCar::where('id', $record->car_id)->select('co_id', 'car_registration_no')->first();
            $car_registration_no = $getCar->car_registration_no;
            $getCo = CarOwner::where('id', $getCar->co_id)->select('co_fname', 'co_lname', 'email')->first();
            $co_fname = $getCo->co_fname;
            $co_lname = $getCo->co_lname;
            $co_email = $getCo->email;
            /*send mail starts*/
            $recipient_name = $co_fname . ' ' . $co_lname;
            // $recipient_email = 'tamashree@karmicksolutions.com';
            $recipient_email = $co_email;
            $subject = 'Autoclick  Car Wash Completed';
            $message_body = '<html>
                                <head>
                                <title>Autoclick  Car In-Queue</title>
                                </head>
                                <body>
                                    <p>Hi ' . $recipient_name . '</p>
                                    <p>Your car ' . $car_registration_no . ' is ready for collection at  ' . $cwo_company . '. Thank you!</p>
                                    <p>Regards</p>
                                    <p>AUTOCLICK</p>
                                    <p><a href="www.autoclick.co.za">www.autoclick.co.za</a> | <a href="mailto:www.autoclick.co.za">info@autoclick.co.za</a></p>
                                </body>
                            </html>';
            $email = sendMail(array($recipient_name, $recipient_email), $message_body, $subject);
            // print_r($email);exit;
            /*send mail ends*/
        }

        return response()->json([
            'success' => 1,
            'message' => 'Wash status has been changed successfully'
        ]);

    }

    public function carWashAllStatus(Request $request){
        $washAllStatus = [
            [
                'id' => 0,
                'name' => 'In-Queue',
            ],
            [
                'id' => 1,
                'name' => 'Started',
            ],
            [
                'id' => 2,
                'name' => 'Drying',
            ],
            [
                'id' => 3,
                'name' => 'Completed',
            ]

        ];

        return response()->json([
            'success' => 1,
            'message' => 'Success',
            'washAllStatus' => $washAllStatus
        ]);

    }

    public function getWashStatus(Request $request){
        $validate = Validator::make($request->all(), 
            [
                'wash_id' => 'required'
            ]);
            
        if($validate->fails()){
            $errorString = implode(",",$validate->messages()->all());
            return response()->json([
                'success' => 0,
                'message' => $errorString,
            ]);
        }

        $wash_id = $request->input('wash_id');

        $record = WashDetail::find($wash_id);
        $status_id = $record->status;
        if($record->status == 0){
            $status = 'Car in-queue';
        }
        if($record->status == 1){
            $status = 'Car Wash Started';
        }
        if($record->status == 2){
            $status = 'Drying';
        }
        if($record->status == 3){
            $status = 'Car Wash Completed';
        }

        return response()->json([
            'success' => 1,
            'message' => 'Success',
            'status_id' => $status_id,
            'status' => $status,
        ]);

    }

    public function changePaymentStatus(Request $request){
        $validate = Validator::make($request->all(), 
            [
                'wash_id' => 'required',
                'payment_status' => 'required',
            ]);
            
        if($validate->fails()){
            $errorString = implode(",",$validate->messages()->all());
            return response()->json([
                'success' => 0,
                // 'message' => $validate->errors(),
                'message' => $errorString,
            ]);
        }

        $wash_id = $request->input('wash_id');
        $payment_status = $request->input('payment_status');

        $record = WashDetail::find($wash_id);
        $record->payment_status = $payment_status;
        $record->save(); 

        return response()->json([
            'success' => 1,
            'message' => 'Payment status has been changed successfully'
        ]);

    }

    public function addCarWash(Request $request){
        $validate = Validator::make($request->all(), 
            [
                'car_id' => 'required',
                'wash_type_id' => 'required',
                'body_type_id' => 'required'
            ]);
            
        if($validate->fails()){
            $errorString = implode(",",$validate->messages()->all());
            return response()->json([
                'success' => 0,
                'message' => $errorString,
            ]);
        }
        $car_id = $request->input('car_id');
        $wash_type_id = $request->input('wash_type_id');
        $body_type_id = $request->input('body_type_id');
        if($body_type_id != ''){
            $getBodyType = BodyType::where('id', $body_type_id)->select('name')->first();
            $body_type = $getBodyType->name;
        } else {
            $body_type_id = 0;
            $body_type = '';
        }
        $getPrice = WashCategoryBodyType::where('wash_category_id', $wash_type_id)->where('body_type_id', $body_type_id)->first();
        if($getPrice != ''){
            $amount = $getPrice->price;
        } else {
            $amount = 0;
        }
        $dt = Carbon::now(); 

        $getWashCat = WashCategory::where('id', $wash_type_id)->select('cwo_id')->first();
        $getCwo = CarWashOwner::where('id', $getWashCat->cwo_id)->select('cwo_name', 'cwo_company')->first();
        $cwo_name = $getCwo->cwo_name;
        $cwo_company = $getCwo->cwo_company;

        $getCar = CarOwnerCar::where('id', $car_id)->select('co_id', 'car_registration_no')->first();
        $car_registration_no = $getCar->car_registration_no;
        $getCo = CarOwner::where('id', $getCar->co_id)->select('co_fname', 'co_lname', 'email')->first();
        $co_fname = $getCo->co_fname;
        $co_lname = $getCo->co_lname;
        $co_email = $getCo->email;


        /*insert into wash_details table starts*/
        $insertCarWash = WashDetail::create([
            'car_id'=> $car_id,
            'entry_date'=> date('Y-m-d'),
            'wash_type_id'=> $wash_type_id,
            'body_type'=> $body_type,
            'body_type_id'=> $body_type_id,
            'amount'=> $amount,
            'status'=> 0,
            'payment_status'=> 0,
            'created_at'=>$dt->toDayDateTimeString(),
            'updated_at'=>$dt->toDayDateTimeString()
        ]);
        /*insert into wash_details table ends*/     
        $wash_id = $insertCarWash->id;  
        
        /*send mail starts*/
        $recipient_name = $co_fname . ' ' . $co_lname;
        // $recipient_email = 'tamashree@karmicksolutions.com';
        $recipient_email = $co_email;
        $subject = 'Autoclick  Car In-Queue';
        $message_body = '<html>
                            <head>
                            <title>Autoclick  Car In-Queue</title>
                            </head>
                            <body>
                                <p>Hi ' . $recipient_name . '</p>
                                <p>Your car ' . $car_registration_no . ' is in the queue at ' . $cwo_company . ' and it will not be long.</p>
                                <p>Regards</p>
                                <p>AUTOCLICK</p>
                                <p><a href="www.autoclick.co.za">www.autoclick.co.za</a> | <a href="mailto:www.autoclick.co.za">info@autoclick.co.za</a></p>
                            </body>
                        </html>';
        $email = sendMail(array($recipient_name, $recipient_email), $message_body, $subject);
        // print_r($email);exit;
        /*send mail ends*/

        return response()->json([
            'success' => 1,
            'message' => 'Success',
            'wash_id' => $wash_id
        ]);

    }

}
