<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Http\Requests\Auth\LoginRequest;
use App\Providers\RouteServiceProvider;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\View\View;
use App\Models\CarWashOwner;

class AuthenticatedSessionController extends Controller
{
    /**
     * Display the login view.
     */
    public function create(): View
    {
        return view('auth.login');
    }

    /**
     * Handle an incoming authentication request.
     */
    public function store(LoginRequest $request): RedirectResponse
    {
        $request->authenticate();

        $request->session()->regenerate();
        
        if($request->user()->user_type == '1'){
            return redirect()->route('admin.dashboard');
        }elseif ($request->user()->user_type == '2') {
            $user_is_active = $request->user()->is_active;
            $cwo_id = $request->user()->cwo_id;
            // echo $cwo_id;exit;
            $cwoDetails = CarWashOwner::findOrFail($cwo_id);
            // echo $cwoDetails->is_paid;exit;
            if($cwoDetails->is_active != 1){
                // echo "do not login";exit;
                Auth::guard('web')->logout();
                $request->session()->invalidate();
                $request->session()->regenerateToken();
                return redirect()->route('login')->with('error', 'Sorry! your login credentials did not match, contact Autoclick support on +27716418942 or email support@autoclick.co.za.')->with('msg_class', 'alert alert-danger');
                // return back()->with('error', 'Sorry! You do not have any active subscription. Please subscribe or contact admin.')->with('msg_class', 'alert alert-danger');
            } elseif($cwoDetails->is_paid == 0){
                // echo "do not login";exit;
                Auth::guard('web')->logout();
                $request->session()->invalidate();
                $request->session()->regenerateToken();
                return redirect()->route('login')->with('error', 'Sorry! You do not have any active subscription. Please subscribe or contact admin.')->with('msg_class', 'alert alert-danger');
            } elseif($user_is_active != 1){
                // echo "do not login";exit;
                Auth::guard('web')->logout();
                $request->session()->invalidate();
                $request->session()->regenerateToken();
                return redirect()->route('login')->with('error', 'Sorry! your login credentials did not match, contact Autoclick support on +27716418942 or email support@autoclick.co.za.')->with('msg_class', 'alert alert-danger')->with('msg_class', 'alert alert-danger');
            } else {
                // echo "login";
                return redirect()->route('owner.dashboard');
            }
            // return redirect()->route('owner.dashboard');
        }

        return redirect()->intended(RouteServiceProvider::HOME);
    }

    /**
     * Destroy an authenticated session.
     */
    public function destroy(Request $request): RedirectResponse
    {
        Auth::guard('web')->logout();

        $request->session()->invalidate();

        $request->session()->regenerateToken();

        return redirect('/login');
    }
}
