<?php
namespace App\Http\Controllers;
use App\Enrolment;
use App\Level;
use App\Degree;
use App\Course;
use App\Subject;
use Illuminate\Http\Request;
use Validator;
use App\Educator;

class EnrolmentController extends Controller
{
   
    public function __construct () 
    {
        $this->middleware('auth');
    }
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $enrolments = Enrolment::all()->where( 'status' , '1' );
        return view('admin.enrolments.index')->withEnrolments($enrolments);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $levels = Level::all()->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
        $educators = Educator::all()->where( 'status' , '1' );
        return view('admin.enrolments.create')->withEducators($educators)->withLevels($levels)->withdegrees($degrees);

    }

    /**
     * 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(), [          
        'package_name' => '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{

                $enrolment = new Enrolment();
                $enrolment->package_name = ($request->package_name) ? $request->package_name : '';
                $enrolment->slug = ($request->slug) ? $request->slug : '';
                $enrolment->degree = ($request->degree) ? $request->degree : '';
                $enrolment->level = ($request->level) ? $request->level : '';
                $enrolment->subject = ($request->subject) ? $request->subject : '';
                $logos=array();
                if($request->hasFile('product_image')) {        
                    $extension = $request->file('product_image')->getClientOriginalExtension();
                    $photoname = time().rand(11111,99999).'.'.$extension;
                    $request->file('product_image')->move(public_path() .'/logo', $photoname);
                    $logos['product_image']= $photoname;
                }
                $enrolment->product_image = serialize( $logos );
                $enrolment->product_details  = ($request->product_details) ? $request->product_details : '';
                $enrolment->syllabus = ($request->syllabus) ? $request->syllabus : '';
                $enrolment->batch_start_date  = ($request->batch_start_date) ? $request->batch_start_date : '';
                $enrolment->batch_end_date = ($request->batch_end_date) ? $request->batch_end_date : '';
                $enrolment->applicable_for = ($request->applicable_for) ? $request->applicable_for : '';
                $enrolment->batch_time  = ($request->batch_time) ? $request->batch_time : '';
                $enrolment->coaching_class_address = ($request->coaching_class_address) ? $request->coaching_class_address : '';
                $enrolment->price = ($request->price) ? $request->price : '';
                $enrolment->discounted_price  = ($request->discounted_price) ? $request->discounted_price : '';
                $enrolment->shipment_required = ($request->shipment_required) ? $request->shipment_required : '';
                $enrolment->meta_title = ($request->meta_title) ? $request->meta_title : '';
                $enrolment->meta_tags  = ($request->meta_tags) ? $request->meta_tags : '';
                $enrolment->meta_details = ($request->meta_details) ? $request->meta_details : '';
               
                $enrolment->status = 1;
                $res = $enrolment->save();

             
            if($res)
            {
                session()->flash('success', 'Enrolments successfully created');
                return redirect()->route('enrolment.index');
            }
        }
         
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\CoachingClasses  $CoachingClasses
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $enrolment = Enrolment::find($id);
        return view('admin.enrolments.show')->withEnrolment($enrolment);
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\CoachingClasses  $coachingtype
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $levels = Level::all()->where( 'status' , '1' );
        $degrees = Degree::all()->where( 'status' , '1' );
        $subjects = Subject::all()->where( 'status' , '1' );
        $enrolment = Enrolment::find($id);
        $educators = Educator::all()->where( 'status' , '1' );
        return view('admin.enrolments.edit')->withEducators($educators)->withEnrolment($enrolment)->withSubjects($subjects)->withLevels($levels)->withdegrees($degrees);
    }

    /**
     * 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(), [          
        'package_name' => '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
        {
            $enrolment = Enrolment::find($id);        
            $enrolment->package_name = ($request->package_name) ? $request->package_name : '';
                $enrolment->slug = ($request->slug) ? $request->slug : '';
                $enrolment->degree = ($request->degree) ? $request->degree : '';
                $enrolment->level = ($request->level) ? $request->level : '';
                $enrolment->subject = ($request->subject) ? $request->subject : '';
                $logos=array();
                if($request->hasFile('product_image')) {        
                    $extension = $request->file('product_image')->getClientOriginalExtension();
                    $photoname = time().rand(11111,99999).'.'.$extension;
                    $request->file('product_image')->move(public_path() .'/logo', $photoname);
                    $logos['product_image']= $photoname;
                }
                $enrolment->product_image = serialize( $logos );
                $enrolment->product_details  = ($request->product_details) ? $request->product_details : '';
                $enrolment->syllabus = ($request->syllabus) ? $request->syllabus : '';
                $enrolment->batch_start_date  = ($request->batch_start_date) ? $request->batch_start_date : '';
                $enrolment->batch_end_date = ($request->batch_end_date) ? $request->batch_end_date : '';
                $enrolment->applicable_for = ($request->applicable_for) ? $request->applicable_for : '';
                $enrolment->batch_time  = ($request->batch_time) ? $request->batch_time : '';
                $enrolment->coaching_class_address = ($request->coaching_class_address) ? $request->coaching_class_address : '';
                $enrolment->price = ($request->price) ? $request->price : '';
                $enrolment->discounted_price  = ($request->discounted_price) ? $request->discounted_price : '';
                $enrolment->shipment_required = ($request->shipment_required) ? $request->shipment_required : '';
                $enrolment->meta_title = ($request->meta_title) ? $request->meta_title : '';
               $enrolment->meta_tags  = ($request->meta_tags) ? $request->meta_tags : '';
               $enrolment->meta_details = ($request->meta_details) ? $request->meta_details : '';

            $enrolment->status = 1;
            $res = $enrolment->save();

            if($res)
            {
                session()->flash('success', 'Enrolments successfully updated');
                return redirect()->route('enrolment.index');
            }

        }
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\CoachingClasses  $CoachingClasses
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        Enrolment::where('id', $id)->delete();
        session()->flash('success','Enrolments was successfully deleted!!!');
        return redirect()->route('enrolment.index');
    }
}
