<?php

namespace App\Http\Controllers\OwnerPanel;

use App\Http\Controllers\Controller;
// use App\Services\CarWashClientService;
use Illuminate\Http\Request;
use App\Models\BodyType;
use Carbon\Carbon;
use Illuminate\Support\Facades\Hash;
use DB;
use Auth;

class OwnerBodyTypeController extends Controller
{
    public function index(Request $request)
    {
        // echo $cwoid;exit;
        $dataBag['chMenu'] = '';
        $cwo_id = Auth::user()->cwo_id;
        
        $data = BodyType::where('cwo_id', $cwo_id)->orderBy('id', 'desc');

        $dataCnt = $data->count();
        $data = $data->paginate(10);
        $dataBag['allRecords'] = $dataCnt;
        $dataBag['records'] = $data;
        // echo "<pre>";print_r($dataBag['records']->toArray());exit;
        // $dataBag['cwo'] = CarWashOwner::where('is_active', 1)->orderBy('id', 'desc')->get();
        return view('owner.bodytype.list', $dataBag);
    }


    /**
     * Show the form for creating a new resource.
     */
    public function create(Request $request)
    {
        $dataBag = array();
        $dataBag['chMenu'] = '';
        // $dataBag['cwo'] = CarWashOwner::where('is_active', 1)->orderBy('id', 'desc')->get();
        // echo "<pre>";print_r($dataBag['cwo']->toArray());exit;
        return view('owner.bodytype.create', $dataBag);
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request)
    {
        // echo "store";exit;
        $request->validate([
            'name' => 'required',
            'status' => 'required'
        ],[
            'name.required' => 'Please enter body type name.',
            'status.required' => 'Please select a status.'
        ]);
        $name = $request->input('name');
        $status = $request->input('status');
        $cwo_id = Auth::user()->cwo_id;
        $dt = Carbon::now();
        
        /*insert into wash_categories table starts*/
        $record = BodyType::create([
                'name'=> $name,
                'status'=> $status,
                'cwo_id'=> $cwo_id,
                'created_at'=>$dt->toDayDateTimeString(),
                'updated_at'=>$dt->toDayDateTimeString()
            ]);
        /*insert into wash_categories table ends*/   

        return back()->with('success', 'Body Type has been added successfully.')->with('msg_class', 'alert alert-success');
    }

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

    /**
     * Show the form for editing the specified resource.
     */
    public function edit($id)
    {
        // echo $cwoid . " - " . $unitid;exit;
        $dataBag = array();
        $dataBag['chMenu'] = '';
        $record = BodyType::findorfail($id);
        $dataBag['details'] = $record;
        // $dataBag['cwo'] = CarWashOwner::where('is_active', 1)->orderBy('id', 'desc')->get();
        return view('owner.bodytype.edit', $dataBag);
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, $id)
    {
        // echo $id;exit;
        $request->validate([
            'name' => 'required',
            'status' => 'required'
        ],[
            'name.required' => 'Please enter body type name.',
            'status.required' => 'Please select a status.'
        ]);
        $name = $request->input('name');
        $status = $request->input('status');
        $cwo_id = Auth::user()->cwo_id;
        $dt = Carbon::now();
        /*update wash_categories table starts*/
        $data = BodyType::findOrFail($id);
        $record = $data->update([
                'name'=> $name,
                'status'=> $status,
                'updated_at'=>$dt->toDayDateTimeString()
            ]);
        /*update wash_categories table ends*/
        return back()->with('success', 'Body Type has been updated successfully.')->with('msg_class', 'alert alert-success');
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(string $id)
    {
        //
    }

    public function delete($id){
        $record = BodyType::findorfail($id); // fetch the record
        $record->status = "0";
        $record->save();
        return back()->with('msg', 'Body Type has been deleted successfully.')->with('msg_class', 'alert alert-success');
        
    }

    public function status_change_ajax(Request $request)
    {
        try {
            $record = BodyType::where('id', $request->id)->first();
            if ($record != null) {
                $record->status = $request->status;
                $record->save();

                return response()->json(['message' => 'Status changed successfully', 'status' => 1], 200);
            } else {
                return response()->json(['message' => 'Body type not found', 'status' => 0], 401);
            }
        } catch (exception $e) {
        }
    }
}
