<?php

namespace App\Http\Controllers;

use App\Educator;
use App\ContentToBeSold;
use App\TypeEntity;
use App\CoachingClasses;
use Illuminate\Http\Request;
use Validator;

class EducatorController extends Controller
{
     public function __construct () 
    {
        $this->middleware('auth:admin');
    }
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        // echo "test";
        // die;
        $educators = Educator::all()->where( 'status' , '1' );
        return view('admin.educator.index')->withEducators($educators);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //use App\CoachingClasses;
        $coachingclasses = CoachingClasses::all()->where( 'status' , '1' );
        $content_to_be_sold = ContentToBeSold::all()->where( 'status' , '1' );
        $entity  = TypeEntity::all()->where( 'status' , '1' );
        return view('admin.educator.create')->withEntities($entity)->withContents($content_to_be_sold)->withCoachingclasses($coachingclasses);

    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
          $customMessage = '';
       $validator = Validator::make($request->all(), [          
        'coaching_classes' => 'required',
        'slug' => 'required'
        ]);
        if ($validator->fails()) {
            $validator_ArrayCount = $validator->errors()->toArray();          
            foreach ($validator_ArrayCount as $key => $value) {
                $customMessage .= $value[$key].'<br>';
            }           
             session()->flash('error', $customMessage);
        }
        else{

            $educator = new Educator();
            $educator->coaching_classes = ($request->coaching_classes) ? $request->coaching_classes : '';
            $educator->slug = ($request->slug) ? $request->slug : '';
            $educator->discount = ($request->discount) ? $request->discount : '';
            $educator->office_address = ($request->office_address) ? $request->office_address : '';
            $educator->website_address  = ($request->website_address) ? $request->website_address : '';
            $educator->city = ($request->city) ? $request->city : '';
            $educator->state = ($request->state) ? $request->state : '';
            $educator->pincode = ($request->pincode) ? $request->pincode : '';
            $educator->content_to_be_sold = json_encode($request->content_to_be_sold);
            $educator->coaching_classes = ($request->coaching_classes) ? $request->coaching_classes : '';
            $educator->pan_no = ($request->pan_no) ? $request->pan_no : '';
            $educator->gst_no = ($request->gst_no) ? $request->gst_no : '';
            $educator->entity = ($request->entity) ? $request->entity : '';
            $educator->provider_share = ($request->provider_share) ? $request->provider_share : '';
            $educator->vga_share = ($request->vga_share) ? $request->vga_share : '';

            $educator->contact_person_name = ($request->contact_person_name) ? $request->contact_person_name : '';
            $educator->contact_person_no = ($request->contact_person_no) ? $request->contact_person_no : '';
            $educator->contact_person_email = ($request->contact_person_email) ? $request->contact_person_email : '';
            $educator->support_contact = ($request->support_contact) ? $request->support_contact : '';
            $educator->bank_name = ($request->bank_name) ?  $request->bank_name : '';
            $educator->ac_holder_name = ($request->ac_holder_name) ? $request->ac_holder_name : '';

            $educator->account_number = ($request->account_number) ? $request->account_number : '';
            $educator->ifsc_code = ($request->ifsc_code) ? $request->ifsc_code : '';
            $educator->authorized_person_name = ($request->authorized_person_name) ? $request->authorized_person_name : '';
            $educator->date = ($request->date) ? $request->date : '';
            $educator->place = ($request->place) ? $request->place : '';
            $logos=array();
            if($request->hasFile('photo1')) {                
                $extension = $request->file('photo1')->getClientOriginalExtension();
                $photoname = time().rand(11111,99999).'.'.$extension;
                $request->file('photo1')->move(public_path() .'/logo', $photoname);
                $logos['photo1']= $photoname;
            }
            $educator->logos = serialize( $logos );
            $educator->description = ($request->description) ? $request->description : '';
            $educator->meta_title = ($request->meta_title) ? $request->meta_title : '';
            $educator->meta_tags  = ($request->meta_tags) ? $request->meta_tags : '';
            $educator->meta_details = ($request->meta_details) ? $request->meta_details : '';
            $educator->status = 1;
            $res = $educator->save();
            if($res)
            {
                session()->flash('success', 'Educator successfully created');
                return redirect()->route('educator.index');
            }
        }
         
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\CoachingClasses  $CoachingClasses
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $educator = Educator::find($id);
        return view('admin.educator.show')->withEducator($educator);
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\CoachingClasses  $coachingtype
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $educator = Educator::find($id);
        $coachingclasses = CoachingClasses::all()->where( 'status' , '1' );
        $content_to_be_sold = ContentToBeSold::all()->where( 'status' , '1' );
        $entity  = TypeEntity::all()->where( 'status' , '1' );
        return view('admin.educator.edit')->withEducator($educator)->withEntitieso($entity)->withContents($content_to_be_sold)->withCoachingclasses($coachingclasses);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\CoachingClasses  $coachingtype
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
         $customMessage = '';

        $validator = Validator::make($request->all(), [          
        'coaching_classes' => 'required',
        'slug' => 'required'
        ]);
        if ($validator->fails()) {
            $validator_ArrayCount = $validator->errors()->toArray();
          
            foreach ($validator_ArrayCount as $key => $value) {
                $customMessage .= $value[$key].'<br>';
            }
           
             session()->flash('error', $customMessage);
        }
        else
        {
            $educator = Educator::find($id);        
            
            $educator->coaching_classes = ($request->coaching_classes) ? $request->coaching_classes : '';
            $educator->slug = ($request->slug) ? $request->slug : '';
            $educator->discount = ($request->discount) ? $request->discount : '';
            $educator->office_address = ($request->office_address) ? $request->office_address : '';
            $educator->website_address  = ($request->website_address) ? $request->website_address : '';
            $educator->city = ($request->city) ? $request->city : '';
            $educator->state = ($request->state) ? $request->state : '';
            $educator->pincode = ($request->pincode) ? $request->pincode : '';
            $educator->content_to_be_sold = json_encode($request->content_to_be_sold);
            $educator->coaching_classes = ($request->coaching_classes) ? $request->coaching_classes : '';
            $educator->pan_no = ($request->pan_no) ? $request->pan_no : '';
            $educator->gst_no = ($request->gst_no) ? $request->gst_no : '';
            $educator->entity = ($request->entity) ? $request->entity : '';
            $educator->provider_share = ($request->provider_share) ? $request->provider_share : '';
            $educator->vga_share = ($request->vga_share) ? $request->vga_share : '';

            $educator->contact_person_name = ($request->contact_person_name) ? $request->contact_person_name : '';
            $educator->contact_person_no = ($request->contact_person_no) ? $request->contact_person_no : '';
            $educator->contact_person_email = ($request->contact_person_email) ? $request->contact_person_email : '';
            $educator->support_contact = ($request->support_contact) ? $request->support_contact : '';
            $educator->bank_name = ($request->bank_name) ?  $request->bank_name : '';
            $educator->ac_holder_name = ($request->ac_holder_name) ? $request->ac_holder_name : '';

            $educator->account_number = ($request->account_number) ? $request->account_number : '';
            $educator->ifsc_code = ($request->ifsc_code) ? $request->ifsc_code : '';
            $educator->authorized_person_name = ($request->authorized_person_name) ? $request->authorized_person_name : '';
            $educator->date = ($request->date) ? $request->date : '';
            $educator->place = ($request->place) ? $request->place : '';
            $logos=array();
            if($request->hasFile('photo1')) {                
                $extension = $request->file('photo1')->getClientOriginalExtension();
                $photoname = time().rand(11111,99999).'.'.$extension;
                $request->file('photo1')->move(public_path() .'/logo', $photoname);
                $logos['photo1']= $photoname;
            }
            $educator->logos = serialize( $logos );
            $educator->description = ($request->description) ? $request->description : '';
            $educator->meta_title = ($request->meta_title) ? $request->meta_title : '';
            $educator->meta_tags  = ($request->meta_tags) ? $request->meta_tags : '';
            $educator->meta_details = ($request->meta_details) ? $request->meta_details : '';
            $educator->status = 1;
            $res = $educator->save();
            if($res)
            {
                session()->flash('success', 'Educator successfully updated');
                return redirect()->route('educator.index');
            }

        }
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\CoachingClasses  $CoachingClasses
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        Educator::where('id', $id)->delete();
        session()->flash('success','Educator was successfully deleted!!!');
        return redirect()->route('educator.index');
    }
}
