<?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 File;
use App\Traits\Upload;
use Illuminate\Support\Facades\Storage;
use Auth;

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.numeric' => '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');
        }

        $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,
        ];
        $item->update($data);
        return redirect()->back()->with('success', 'Car Wash Owner Updated Successfully.');
    }
}
