<?php

namespace App\Http\Controllers;

use App\Order;
use App\Cart;
use Illuminate\Http\Request;
use Auth;
use Softon\Indipay\Facades\Indipay;  

class OrderController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $carts = Cart::all()->where( 'user_id' , Auth::user()->id);
        return view('user.pages.checkout')->withCarts($carts);
    }

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

    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
        $first_name_billing = $request->first_name_billing;
        $last_name_billing = $request->last_name_billing;
        $company_name_billing =( $request->company_name_billing) ?  $request->company_name_billing : '';
        $email_billing = $request->email_billing;
        $mobile_no_billing = $request->mobile_no_billing;
        $country_billing = $request->country_billing;
        $addreess_billing = $request->addreess_billing;
        $street_address_billing = $request->street_address_billing;
        $city_billing = $request->city_billing;
        $state_billing = $request->state_billing;
        $postcode_billing = $request->postcode_billing;

        $billing_data=array(
            "first_name_billing"=>$first_name_billing,
            "last_name_billing"=>$last_name_billing,
            "company_name_billing"=>$company_name_billing,
            "email_billing"=>$email_billing,
            "mobile_no_billing"=>$mobile_no_billing,
            "country_billing"=>$country_billing,
            "addreess_billing"=>$addreess_billing,
            "street_address_billings"=>$street_address_billing,
            "city_billing"=>$city_billing,
            "state_billing"=>$state_billing,
            "postcode_billing"=>$postcode_billing
        );
        $billing_data = json_encode($billing_data);

        $first_name_shipping = $request->first_name_shipping;
        $last_name_shipping = $request->last_name_shipping;
        $company_name_shipping =( $request->company_name_shipping) ?  $request->company_name_shipping : '';
        $email_shipping = $request->email_shipping;
        $mobile_no_shipping = $request->mobile_no_shipping;
        $country_shipping = $request->country_shipping;
        $addreess_shipping = $request->addreess_shipping;
        $street_address_shipping = $request->street_address_shipping;
        $city_shipping = $request->city_shipping;
        $state_shipping = $request->state_shipping;
        $postcode_shipping = $request->postcode_shipping;

        $shipping_data=array(
            "first_name_shipping"=>$first_name_shipping,
            "last_name_shipping"=>$last_name_shipping,
            "company_name_shipping"=>$company_name_shipping,
            "email_shipping"=>$email_shipping,
            "mobile_no_shipping"=>$mobile_no_shipping,
            "country_shipping"=>$country_shipping,
            "addreess_shipping"=>$addreess_shipping,
            "street_address_shipping"=>$street_address_shipping,
            "city_shipping"=>$city_shipping,
            "state_shipping"=>$state_shipping,
            "postcode_shipping"=>$postcode_shipping
        );

        $shipping_data = json_encode($shipping_data);

        $carts = Cart::all()->where( 'user_id' , Auth::user()->id);

        $cart_data = json_encode( $carts );
        $message =( $request->message) ?  $request->message : '';
        $cart_subtotal =( $request->cart_subtotal) ?  $request->cart_subtotal : '';
        $cart_total =( $request->cart_total) ?  $request->cart_total : '';

        $order = new Order();
        $order->user_id = Auth::user()->id;
        $order->products = $cart_data;
        $order->shipping_address = $shipping_data;
        $order->billing_address = $billing_data;
        $order->subtotal = ($request->cart_subtotal)?$request->cart_subtotal:0;
        $order->shpping_cost = ($request->shpping_cost)?$request->shpping_cost:0;
        $order->grand_total = ($request->cart_total)?$request->cart_total:0;
        $order->order_notes = ($request->message)?$request->message:'';
        $order->payment_status = 0;
        $order->status = 1;
        $res = $order->save();
        if($res)
        {
              $parameters = [
                'merchant_id' => '201290',
                'tid' => '1233221223322',
                
                'order_id' => '1232212',
                
                'amount' => '1200.00',
                
              ];
              
              // gateway = CCAvenue / PayUMoney / EBS / Citrus / InstaMojo / ZapakPay / Mocker
              
              $order = Indipay::gateway('CCAvenue')->prepare($parameters);
              return Indipay::process($order);
        }


        die;
    }

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

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

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Order  $order
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Order $order)
    {
        //
    }

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