<?php

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Loyalty;
use App\Models\LoyaltyScore;
use App\Models\WashCategory;
use App\Models\WashCategoryLoyaltyPoint;
use App\Models\LoyaltyPointToZar;
use Carbon\Carbon;
use DB;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Validator;

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

    public function index(Request $request){
    }

    public function totalLoyaltyPoints(Request $request){
        $validate = Validator::make($request->all(), 
            [
                'cwo_id' => 'required',
                'isd_code' => 'required',
                'phone' => 'required',
            ]);
            
        if($validate->fails()){
            $errorString = implode(",",$validate->messages()->all());
            return response()->json([
                'success' => 0,
                // 'message' => $validate->errors(),
                'message' => $errorString,
            ]);
        }

        $cwo_id = $request->input('cwo_id');
        $isd_code = $request->input('isd_code');
        $phone = $request->input('phone');
        $data = LoyaltyScore::where('cwo_id', $cwo_id)
                    ->where('isd_code', $isd_code)
                    ->where('phone', $phone)
                    ->select('loyalty_point')
                    ->first();
        // echo "<pre>";print_r($data);exit;            

        if($data != ''){
            $loyaltyPoints = $data->loyalty_point;
        } else {
            $loyaltyPoints = 0;
        }               
        return response()->json([
            'success' => 1,
            'message' => 'Success',
            'loyaltyPoints' => $loyaltyPoints
        ]);
    }

    public function freeWashCatrgoriesList(Request $request){
        $validate = Validator::make($request->all(), 
            [
                'cwo_id' => 'required',
            ]);
            
        if($validate->fails()){
            $errorString = implode(",",$validate->messages()->all());
            return response()->json([
                'success' => 0,
                'message' => $errorString,
            ]);
        }

        $cwo_id = $request->input('cwo_id');

        $data = WashCategory::where('cwo_id', $cwo_id)
                ->where('is_active', 1)
                ->where('eligible_for_free_wash', 1)
                ->orderBy('wash_name', 'asc')
                ->select('id', 'wash_name', 'wash_desc')
                ->get();
        $dataDisplay=[];
        $dataArray = [];
        $washCategoryIdArray = [];
        if($data != ''){
            foreach ($data as $d) {
                $dataDisplay['id'] = $d->id;
                $dataDisplay['wash_name'] = $d->wash_name;
                $dataDisplay['wash_desc'] = $d->wash_desc;
                $dataArray[] = $dataDisplay;
                array_push($washCategoryIdArray, $d->id);
            }
        }
        return response()->json([
            'success' => 1,
            'message' => 'Success',
            'washCategories' => $dataArray,
            'washCategoryIdArray' => $washCategoryIdArray
        ]);
    }

    public function bodyTypesLoyaltyPoints(Request $request){
        $validate = Validator::make($request->all(), 
            [
                // 'cwo_id' => 'required',
                'wash_category_id' => 'required',
                'body_type_id' => 'required',
            ]);
            
        if($validate->fails()){
            $errorString = implode(",",$validate->messages()->all());
            return response()->json([
                'success' => 0,
                'message' => $errorString,
            ]);
        }

        // $cwo_id = $request->input('cwo_id');
        $wash_category_id = $request->input('wash_category_id');
        $body_type_id = $request->input('body_type_id');

        $data = WashCategoryLoyaltyPoint::where('wash_category_id', $wash_category_id)
                ->where('body_type_id', $body_type_id)
                ->select('id', 'loyalty_point')
                ->first();
        if($data != ''){
            $loyaltyPoints = $data->loyalty_point;
        } else {
            $loyaltyPoints = 0;
        }
        return response()->json([
            'success' => 1,
            'message' => 'Success',
            'loyaltyPoints' => $loyaltyPoints
        ]);
    }

    public function loyaltyPointsToZar(Request $request){
        $validate = Validator::make($request->all(), 
            [
                'cwo_id' => 'required'
            ]);
            
        if($validate->fails()){
            $errorString = implode(",",$validate->messages()->all());
            return response()->json([
                'success' => 0,
                'message' => $errorString,
            ]);
        }

        $cwo_id = $request->input('cwo_id');
        $data = LoyaltyPointToZar::where('cwo_id', $cwo_id)->select('loyalty_point', 'zar_value')->first();
        // echo "<pre>";print_r($data);exit;  
        return response()->json([
            'success' => 1,
            'message' => 'Success',
            'loyalty_points_to_zar' => $data
        ]);
    }


}
