<?php

namespace App\Http\Controllers\OwnerPanel;

use App\Http\Controllers\Controller;
// use App\Services\CarSearchService;
use Illuminate\Http\Request;
use App\Models\WashDetail;
use App\Models\OptionalExtra;
use App\Models\CleanerWash;
use App\Models\WashTypeToWash;
use App\Models\WashCategory;
use App\Models\WashCategoryBodyType;
use App\Models\CarOwnerCar;
use Carbon\Carbon;
use DB;
use Auth;

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

    public function index(Request $request)
    {
        $cwo_id = Auth::user()->cwo_id;
        $dataBag = array();
        $dataBag['chMenu'] = 'clientBirthdayList';

        // $date = new Carbon();
        // $date->addDays(7);
        // $get = WashDetail::whereBetween('dob',[new Carbon(),$date])->get();
        // echo "<pre>";print_r($get->toArray());exit;

        // $today = date('Y-m-d');
        // $days_from = $today;
        // $days_to = date('Y-m-d', strtotime('+7 days', strtotime($today)));
        // echo $days_from . ' - ' . $days_to;exit;

        // $data = WashDetail::select('wash_details.driver_name', 'wash_details.driver_isd_code', 'wash_details.driver_phone', 'wash_details.driver_email', 'wash_details.dob')
        //     // ->distinct()
        //     ->where('wash_details.cwo_id', $cwo_id)
        //     // ->where('wash_details.dob', '>',  'DATE_SUB(NOW(), INTERVAL 1 WEEK)')
        //     // ->where('wash_details.dob', '>=', DB::raw('DATE_SUB(NOW(), INTERVAL 2 DAY)'))
        //     ->whereDate('wash_details.dob', '>', $days_from)
        //     ->whereDate('wash_details.dob', '<=', $days_to)
        //     ->orderBy('wash_details.dob', 'asc');

        /*$data = WashDetail::select('wash_details.driver_name', 'wash_details.driver_isd_code', 'wash_details.driver_phone', 'wash_details.driver_email', 'wash_details.dob')
            ->distinct()
            ->where('wash_details.cwo_id', $cwo_id)
            // ->whereRaw('DAYOFYEAR(CURDATE()) < DAYOFYEAR(dob) AND DAYOFYEAR(CURDATE()) + 7 >= DAYOFYEAR(dob)')
            ->whereRaw('DAYOFYEAR(CURDATE()) < DAYOFYEAR(dob)')
            ->orderBy('wash_details.dob', 'asc');*/

        /*$data = WashDetail::select('wash_details.driver_name', 'wash_details.driver_isd_code', 'wash_details.driver_phone', 'wash_details.driver_email', 'wash_details.dob')
            ->distinct()
            ->where('wash_details.cwo_id', $cwo_id)  
            ->whereDay('wash_details.dob', '>=', Carbon::now())
            // ->whereMonth('wash_details.dob', '01') 
            ->orderBy('wash_details.dob', 'asc');*/

        /*// start range 7 days ago
        // $start = date('z') + 1 - 7;
        $start = date('z') + 1;
        // echo $start . "<br>";
        // end range 7 days from now
        $end = date('z') + 1 + 30;
        // echo $end . "<br>";exit;
        $customerslist = WashDetail::whereRaw("DAYOFYEAR(dob) BETWEEN $start AND $end")->get();
        echo "<pre>";print_r($customerslist->toArray());exit;*/

        /*$getRecord = DB::statement("SELECT
 driver_name,dob,
 FLOOR(DATEDIFF(DATE(NOW()),dob) / 365.25) AS age_now,
 FLOOR(DATEDIFF(DATE_ADD(DATE(NOW()),INTERVAL 30 DAY),dob) / 365.25) AS age_future

FROM wash_details

WHERE 1 = (FLOOR(DATEDIFF(DATE_ADD(DATE(NOW()),INTERVAL 30 DAY),dob) / 365.25)) - (FLOOR(DATEDIFF(DATE(NOW()),dob) / 365.25))

ORDER BY MONTH(dob),DAY(dob)");
        echo "<pre>";print_r($getRecord);exit;*/

        /*$age =  DB::select(
                    DB::raw("SELECT driver_name,
                                dob,
                                FLOOR(DATEDIFF(DATE(NOW()),dob) / 365.25) AS age_now,
                                FLOOR(DATEDIFF(DATE_ADD(DATE(NOW()),INTERVAL 30 DAY),dob) / 365.25) AS age_future
                                FROM wash_details
                                WHERE 1 = (FLOOR(DATEDIFF(DATE_ADD(DATE(NOW()),INTERVAL 30 DAY),dob) / 365.25)) - (FLOOR(DATEDIFF(DATE(NOW()),dob) / 365.25))
                                ORDER BY MONTH(dob),DAY(dob)                                    
                                ")
                            );
        echo "<pre>";print_r($age);exit;*/

        /*$test = WashDetail::select('driver_name', 'dob', 'FLOOR(DATEDIFF(DATE(NOW()),dob) / 365.25) AS age_now', 'FLOOR(DATEDIFF(DATE_ADD(DATE(NOW()),INTERVAL 30 DAY),dob) / 365.25) AS age_future')    
            ->where('(FLOOR(DATEDIFF(DATE_ADD(DATE(NOW()),INTERVAL 30 DAY),dob) / 365.25)) - (FLOOR(DATEDIFF(DATE(NOW()),dob) / 365.25))' '=', 1)
            // ->orderBy('wash_details.dob', 'asc')*/

        $cwo_id = Auth::user()->cwo_id;    
        $data = WashDetail::select('driver_name', 'dob', 'driver_isd_code', 'driver_phone', 'driver_email')
        ->whereRaw('DAYOFYEAR(curdate()) < DAYOFYEAR(dob) AND DAYOFYEAR(curdate()) + 7 >=  dayofyear(dob)')
        ->where('cwo_id', $cwo_id);
        // echo "<pre>";print_r($data);exit;


        $dataCnt = $data->count();
        $data = $data->paginate(10);
        $dataBag['allRecords'] = $dataCnt;
        $dataBag['records'] = $data;
        // echo "<pre>";print_r($dataBag['records']->toArray());exit;
        return view('owner.birthday.list', $dataBag);
    }

}
