<?php

namespace App\Http\Middleware;

use Closure;

class RedirectIfNotInitializedMiddleware
{

    public $dontRedirect = ['initialize.index', 'initialize.store'];

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if(!$this->shouldRedirect()) {
            return $next($request);
        }

        if (!$this->initialized()) {
            return redirect()->route('initialize.index');
        }

        return $next($request);
    }

    public function shouldRedirect() {
        return !in_array(request()->route()->getName(), $this->dontRedirect) && auth()->check();
    }

    public function initialized() {
        return \App\Fee::get()->count() > 0;
    }
}