<?php

namespace App\Http\Middleware;

use App\Module;
use App\User;
use Closure;
use Illuminate\Support\Facades\Auth;

class Role
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $user = User::find(["id" => Auth::user()->id])->first();
        $module = Module::where(["user_id" => Auth::user()->id])->get();
        if($user->package_type==""){
         $users = User::with("wallet")->get();
        }else{
         $users = User::with("wallet")->where(["id" => Auth::user()->id])->get();
        }
        $debit = 0.00;
            $credit = 0.00;
        foreach ($users as $key => $user2) {
            
            foreach ($user2->wallet as $wallet) {
                if ($wallet->type == 0) {
                    $credit = $credit + $wallet->amount;
                } else {
                    $debit = $debit + $wallet->amount;
                }
            }
        }
        $totalAmount = $credit - $debit;

        $arr = [];
        foreach ($module as $key => $value) {
            if ($value->module_sta == 1) {
                $arr[] = $value->module_slug;
            }

        }
        

        $request->request->add(['role' => $user->package_type, "userMoules" => $arr, "walletBalance" => number_format($totalAmount, 2, '.', '')]);
        return $next($request);
    }
}
