<?php

namespace App\Http\Controllers\Api\v1\Service;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Http\Controllers\Api\BaseController as BaseController;
use Illuminate\Support\Facades\Auth;
use App\Models\User;
use App\Models\UserInfo;
use App\Models\Services;
use Validator;
use Exception;

class ScrvicesController extends Controller
{
  protected $baseController;

    public function __construct(BaseController $baseController)
    {

        $this->baseController = $baseController;
        if(Auth::guard('api')->check()){
        $this->user_id=auth('api')->user()->id;
        $this->name=auth('api')->user()->name;
        $this->email=auth('api')->user()->email;
        }
    }

    public function addOrEditServices(Request $request){
    	$inputs = $request->all();
    	$messageArr['input'] = $inputs;
    	$status_code = 0;
    	$success = []; 
    	$successMsg=false;
    	try{
    		$customMessages = [
                'fire_brigade.required' => 'Please enter Fire Brigade number',
                //'fire_brigade.numeric' => 'Fire brigade number should be numeric',
                'fire_brigade.min' => 'Minimum 3 digit number required',
                'fire_brigade.max' => 'Maximum 15 digit number allowed',
                 
                'police_station.required' => 'Please enter Police station number',
                //'police_station.numeric' => 'Police station number should be numeric',
                'police_station.min' => 'Minimum 3 digit number required',
                'police_station.max' => 'Maximum 15 digit number allowed',


                'ambulance.required' => 'Please enter Ambulance number',
               // 'ambulance.numeric' => 'Ambulance number should be numeric',
                'ambulance.min' => 'Minimum 3 digit number required',
                'ambulance.max' => 'Maximum 15 digit number allowed', 

                'sos_no1.required' => 'Please enter First SOS number',
                //'sos_no1.numeric' => ' SOS number should be numeric',
                'sos_no1.min' => 'Minimum 3 digit number required',
                'sos_no1.max' => 'Maximum 15 digit number allowed',

                'sos_no2.required' => 'Please enter Second SOS number',
                //'sos_no2.numeric' => ' SOS number should be numeric',
                'sos_no2.min' => 'Minimum 3 digit number required',
                'sos_no2.max' => 'Maximum 15 digit number allowed', 

                'sos_no3.required' => 'Please enter Third SOS number',
                //'sos_no3.numeric' => ' SOS number should be numeric',
                'sos_no3.min' => 'Minimum 3 digit number required',
                'sos_no3.max' => 'Maximum 15 digit number allowed',

                'sos_no4.required' => 'Please enter Fourth SOS number',
                //'sos_no4.numeric' => ' SOS number should be numeric',
                'sos_no4.min' => 'Minimum 3 digit number required',
                'sos_no4.max' => 'Maximum 15 digit number allowed',

            ];
           $validator  =  Validator::make($inputs,[
            'fire_brigade' => 'required|string|min:3|max:15',
            'police_station' => 'required|string|min:3|max:15',
            'ambulance' => 'required|string|min:3|max:15',
            'sos_no1' => 'required|string|min:3|max:15',
            'sos_no2' => 'required|string|min:3|max:15',
            'sos_no3'=>'required|string|min:3|max:15',
            'sos_no4'=>'required|string|min:3|max:15',      
           ],$customMessages);
        
          if($validator->passes()){


    		if(Services::where('user_id',$this->user_id)->exists()){
    			$successMsg=true;
                $status_code = 1;
    			//update
    			Services::where('user_id',$this->user_id)->update([
    				'fire_brigade' =>$request->fire_brigade,
    				'police_station'=>$request->police_station,
    				'ambulance'=>$request->ambulance,
    				'sos_no1'=>$request->sos_no1,
    				'sos_no2'=>$request->sos_no2,
    				'sos_no3'=>$request->sos_no3,
    				'sos_no4'=>$request->sos_no4
    			]);
    		    return $this->baseController->sendResponse($status_code, $successMsg,$success,'Services updated', 200, $messageArr);	
    		}else{
    			$successMsg=true;
                $status_code = 1;
               //add                
    			$Services= new Services;
    			$Services->user_id=$this->user_id;
    			$Services->fire_brigade=$request->fire_brigade;
    			$Services->police_station=$request->police_station;
    			$Services->ambulance=$request->ambulance;
    			$Services->sos_no1=$request->sos_no1;
    			$Services->sos_no2=$request->sos_no2;
    			$Services->sos_no3=$request->sos_no3;
    			$Services->sos_no4=$request->sos_no4;
    			$Services->save();

    			 return $this->baseController->sendResponse($status_code, $successMsg,$success,'Services added', 200, $messageArr);
    		}
    	  }else{

             //validation error
    	  	return $this->baseController->sendResponse($status_code, $successMsg,$success,$validator->messages()->first(), 200, $messageArr);
    	 }	
    	}catch (Exception $e){         
    		return $this->baseController->sendResponse(0,false,[],$e->getMessage(), 200, $messageArr??[]);
    	}  
    }
}
