<?php

namespace App\Http\Controllers\OwnerPanel;

use App\Http\Controllers\Controller;
use App\Models\CarWashOwner;
use App\Models\CurrencyMaster;
use Illuminate\Http\Request;
use App\Services\CarWashOwnerService;
use App\Models\BusinessHours;
use File;
use App\Traits\Upload;
use Illuminate\Support\Facades\Storage;
use Auth;
use Carbon\Carbon;
use DB;

class WashOwnerController extends Controller
{
    use Upload; //add this trait

    public function __construct()
    {
    }

    /**
     * Display a listing of the resource.
     */
    public function index(Request $request)
    {
        $cwo_id = Auth::user()->cwo_id;
        // echo $cwoid;exit;
        $dataBag['chMenu'] = '';
        $data = CarWashOwner::find($cwo_id);
        $dataBag['records'] = $data;
        // echo "<pre>";print_r($dataBag['records']->toArray());exit;
        return view('owner.carwashowner.list', $dataBag);
    }

    /**
     * Display the specified resource.
     */
    public function show(string $id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(Request $request, $id)
    {

        $data['cwo_user'] = CarWashOwner::find($id);
        $data['currencies'] = CurrencyMaster::orderBy('id', 'asc')->get();
        return view('owner.carwashowner.edit', $data);
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, string $id)
    {
        // dd($request->all());
        $request->validate([
            'cwo_name' => 'required',
            'cwo_email' => 'required|email|unique:cwo_master,cwo_email,' . $id,
            'currency_id' => 'required',
            'address' => 'required'
        ], [
            'cwo_name.required' => 'Please enter CWO name.',
            'cwo_email.required' => 'Please enter CWO email.',
            'cwo_email.unique' => 'This email already exists.',
            'currency_id.numeric' => 'Please select a currency.',
            'address.required' => 'Please enter address.'
        ]);
        //
        $item = CarWashOwner::findOrFail($id);

        $cwo_logo = $item->cwo_logo;

        // dd(Storage::disk('public')->exists($cwo_logo),$cwo_logo);
        /*if ($request->hasFile('cwo_logo')) {
            if ($cwo_logo && Storage::disk('public')->exists($cwo_logo)) {
                $this->deleteFile($cwo_logo);
            }
            $cwo_logo = $request->file('cwo_logo');

            $cwo_logo = $this->UploadFile($request->file('cwo_logo'), 'car_wash_owner');
        }*/

        if ($request->hasFile('cwo_logo')) {
            $cwo_logo = time() . '.' . $request->file('cwo_logo')->extension();
            $path = $request->file('cwo_logo')->move(public_path('images/cwo/'), $cwo_logo);
        }

        if($request->address != ''){
            $address = getLatLongFromAddress($request->address);
            // print_r($address);
            $lat = $address['lat'];
            $long = $address['long'];
        } else {
            $lat = '';
            $long = '';
        }

        $data = [
            'cwo_name' => $request->cwo_name,
            'cwo_isd' => $request->cwo_isd,
            'cwo_phone' => $request->cwo_phone,
            'cwo_email' => $request->cwo_email,
            'cwo_company' => $request->cwo_company,
            'cwo_business_details' => $request->cwo_business_details,
            // 'is_active' => $request->has('is_active') ? $request->is_active : 1,
            'cwo_logo' => $cwo_logo,
            'currency_id' => $request->currency_id,
            'address' => $request->address,
            'lat'=> $lat,
            'long'=> $long,
        ];
        $item->update($data);

        $day = $request->input('day');
        $from_hours = $request->input('from_hours');
        $to_hours = $request->input('to_hours');
        $status = $request->input('status');
        $dt = Carbon::now();

        DB::delete("DELETE FROM `business_hours` WHERE `cwo_id` = " . $id . "");
        if (count($day) > 0) {
            for ($i = 0; $i < count($day); $i++) {
                // echo $from_hours[$i] . ' - ' . $to_hours[$i] . ' - ' . $status[$i] . ' - ' . $duration[$i] . '<br>';
                // if ($price[$i] != '') {
                    /*insert into business_hours table starts*/
                    $recordBusinessHours = BusinessHours::create([
                        'cwo_id' => $id,
                        'day'=> $day[$i],
                        'from_hours'=> $from_hours[$i],
                        'to_hours'=> $to_hours[$i],
                        'status'=> $status[$i],
                        'created_at' => $dt->toDayDateTimeString(),
                        'updated_at' => $dt->toDayDateTimeString()
                    ]);
                    /*insert into business_hours table ends*/
                // }
            }
        }
        // exit;

        return redirect()->back()->with('success', 'Car Wash Owner Updated Successfully.');
    }
}
