<?php

namespace App\Http\Controllers;

use App\Cart;
use App\UserCart;
use App\Coupon;
use App\Educator;
use App\Cms;
use App\UserMeta;
use Illuminate\Http\Request;
use Auth;

class CartController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $pageid = 15;//cart
        $carts  =  array();
        $cms = Cms::find($pageid);
        if(Auth::check()){
            $usermeta = UserMeta::all()->where( 'user_id' , Auth::user()->id )->first();
            $educators = Educator::all()->where( 'status' , '1' );
            $carts = Cart::all()->where( 'user_id' , Auth::user()->id);
            $ucart_data = UserCart::where( 'user_id' , Auth::user()->id )->get()->first();
            return view('user.pages.cart')->withCarts($carts)->withUcartdata($ucart_data)->withEducators($educators)->withCount($carts->count())->withCms($cms)->withWallet($usermeta->current_wallet_balance);
           
        }
        else{
            return view('user.pages.cart')->withCarts($carts)->withCms($cms);
        }
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $cart_1 = Cart::where( 'user_id' , $request->user_id )->where( 'product_id' , $request->product_id )->get();
        // $cart_1 = Cart::where( 'product_id' , $request->product_id)->first()->get();
        //print_r($cart_1);
        $cart_1Count = $cart_1->count();
        if( $cart_1Count <= 0 ){
            $cart = new Cart();
            $cart->product_id = ($request->product_id) ? $request->product_id : '';
            $cart->user_id =  ($request->user_id)? $request->user_id :'';
            $cart->name = ($request->name) ? $request->name : '';
            $cart->quantity = 1;
            $cart->price = ($request->price)?$request->price:'';
            $cart->status = 1;
            $res = $cart->save();
            if($res)
            {
                $ucart_data = UserCart::all()->where( 'user_id' ,Auth::user()->id  );

                if(count($ucart_data)<=0)
                {
                        
                    $ucarts = Cart::all()->where( 'user_id' , Auth::user()->id);
                    $ucart_data = new UserCart();
                    $ucart_data->user_id =  $request->user_id;
                    $ucart_data->coupon_code = '';
                    $ucart_data->coupon_discount = 0;
                    $ucart_data->sub_total = 0;
                    $ucart_data->grand_total = 0;
                    $ucart_data->shipping_charge = 0;
                    $ucart_data->save();
                }
                session()->flash('success', 'Course successfully added to cart');
                return redirect()->route('cart.index');
               
            }
        }
        else{
            session()->flash('success', 'Course already added to cart');
            return redirect()->route('cart.index');
        }
       
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Cart  $cart
     * @return \Illuminate\Http\Response
     */
    public function show(Cart $cart)
    {
       
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Cart  $cart
     * @return \Illuminate\Http\Response
     */
    public function edit(Cart $cart)
    {
        
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Cart  $cart
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request,$id)
    {
        echo $id;
        // $cart = Cart::find($id);  
        // $cart->package_name = ($request->product_id) ? $request->product_id : '';
        // $cart->user_id =  ($request->user_id)? $request->user_id :'';
        // $cart->name = ($request->name) ? $request->name : '';
        // $cart->quantity = ($request->quantity)?$request->quantity:'';
        // $cart->price = ($request->price)?$request->price:'';
        // $cart->status = 1;
        // $res = $cart->save();      
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Cart  $cart
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {

        Cart::where('id', $id)->delete();

        $cart_2 = Cart::where( 'user_id' , Auth::user()->id )->get();
      
        $cart_2Count = $cart_2->count();
        if( $cart_2Count <=0 )
        {
             $ucart_data = UserCart::where( 'user_id' , Auth::user()->id )->delete();
        }

        session()->flash('success','Course was successfully deleted from cart!!!');
        return redirect()->route('cart.index');
    }
}
