<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Yajra\Datatables\Datatables as Datatables;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Facades\Excel;
use Validator;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Str;
use Auth;
use Stripe;
use Session;
use Request as req;
use App\Models\Application\Lists;
use App\Models\Stripe\APIKeys;
use App\Models\Application\Events;
use App\Models\Application\Particulars;
use App\Models\User;
use App\Models\Entity_Type;

class ListingController extends Controller
{
    ////////////////listings//////////////////////
    public function entity_type()
    {
        $entity_types = Entity_Type::all();
        $enarr = [];
        $i = 0;
        foreach($entity_types as $type)
        {
            $enarr[$i]['id'] = $type->id;
            $enarr[$i]['type_name'] = $type->type_name;

            $i++;
        }

        return $enarr;

    }
    public function listings(Request $request)
    {
        $city = $request->city;

        $entity_type = $request->entity_type;

        $sub_arr = [];
        if($city=="")
        {
            $sub_arr['status'] = 202;
            $sub_arr['message'] = "Data missing. Please check the same.";
            return $sub_arr;
        }
        $request->validate([
            'city' => 'required',
        ]);

        $query = Lists::where('city',$city);

        if($entity_type)
        {
            $query->where('entity_type_id',$entity_type);
        }

        $city_count= $query->count();

        $flg = 0;
        $i=0;
        if($city_count!=0)
        {
            $query = Lists::where('city',$city);
            if($entity_type)
            {
                $query->where('entity_type_id',$entity_type);
            }
            $city_lists = $query->get();

            foreach($city_lists as $city_list)
            {
                $cityname = $city_list->city;
                $title = $city_list->title;
                $short_title = $city_list->short_title;
                $imgurl = $city_list->imageURL;
                $entity_type_id = $city_list->entity_type_id;
                $sub_arr[$i]['id'] = $city_list->id;
                $sub_arr[$i]['cityname'] = $cityname;
                $sub_arr[$i]['title'] = $title;
                $sub_arr[$i]['short_title'] = $short_title;
                $sub_arr[$i]['imgurl'] = $imgurl;
                $sub_arr[$i]['entity_type_id'] = $entity_type_id;
                $sub_arr[$i]['status'] = 200;
                $sub_arr[$i]['message'] = "Success";
                $i++;
            }
        }
        else
        {
            $sub_arr[$i]['id'] = ""; 
            $sub_arr[$i]['cityname'] = "";
            $sub_arr[$i]['title'] = "";
            $sub_arr[$i]['short_title'] = "";
            $sub_arr[$i]['imgurl'] = "";
            $sub_arr[$i]['entity_type_id'] = "";
            $sub_arr[$i]['status'] = 201;
            $sub_arr[$i]['message'] = "City ".$city." not exist or the Event Type doesnt exist. Please check.";
        }
        return $sub_arr;
    }

    ////////////////events//////////////////////
    public function events(Request $request)
    {
        $list_id = $request->list_id;
        $sub_arr = [];
        if($list_id=="")
        {
            $sub_arr['status'] = 202;
            $sub_arr['message'] = "Data missing. Please check the same.";
            return $sub_arr;
        }
        $request->validate([
            'list_id' => 'required',
        ]);
        $events_count = Events::where('lists_id',$list_id)->count();
        $i=0;
        
        if($events_count!=0)
        {
            $events_obj = Events::where('lists_id',$list_id)->get();
            foreach($events_obj as $events_list)
            {
                $list_cityname = $events_list->lists->city;
                $list_title = $events_list->lists->title;
                $list_short_title = $events_list->lists->short_title;
                $list_imgurl = $events_list->lists->imageURL;

                $event_description = $events_list->description;
                $event_price = $events_list->price;
                $event_short_title = $events_list->short_title;
                $event_imgurl = $events_list->imageURL;
                $events_id = $events_list->id;

                $sub_arr[$i]['events_id'] = $events_id;
                $sub_arr[$i]['list_cityname'] = $list_cityname;
                $sub_arr[$i]['list_title'] = $list_title;
                $sub_arr[$i]['list_short_title'] = $list_short_title;
                $sub_arr[$i]['list_imgurl'] = $list_imgurl;
                $sub_arr[$i]['event_description'] = $event_description;
                $sub_arr[$i]['event_short_title'] = $event_short_title;
                $sub_arr[$i]['event_price'] = $event_price;
                $sub_arr[$i]['event_imgurl'] = $event_imgurl;

                ////particulars//////////////////////
                $k=0;
                $particulars_obj = Particulars::where('events_id',$events_id)->get();
                foreach($particulars_obj as $particulars_list)
                {
                    $particular_label_name = $particulars_list->label_name;
                    $particular_label_text = $particulars_list->label_text;
                    //$sub_arr[$i][$events_id][$particulars_list->id]['particular_label_name'] = $particular_label_name;
                    //$sub_arr[$i][$events_id][$particulars_list->id]['particular_label_text'] = $particular_label_text;
                    $sub_arr[$i]['particulars'][$k]['particular_label_name'] = $particular_label_name;
                    $sub_arr[$i]['particulars'][$k]['particular_label_text'] = $particular_label_text;
                    $k++;
                }
                $sub_arr[$i]['status'] = 200;
                $sub_arr[$i]['message'] = "Success";
                $i++;
            }
        }
        else
        {
            $sub_arr[$i]['id'] = ""; 
            $sub_arr[$i]['list_cityname'] = "";
            $sub_arr[$i]['list_title'] = "";
            $sub_arr[$i]['list_short_title'] = "";
            $sub_arr[$i]['list_imgurl'] = "";
            $sub_arr[$i]['event_description'] = "";
            $sub_arr[$i]['event_short_title'] = "";
            $sub_arr[$i]['event_price'] = "";
            $sub_arr[$i]['event_imgurl'] = "";
            $sub_arr[$i]['particular_label_name'] = "";
            $sub_arr[$i]['particular_label_text'] = "";
            $sub_arr[$i]['status'] = 201;
            $sub_arr[$i]['message'] = "Given data not exist. Please enter correct city name.";
        }
        return $sub_arr;
    }

}
