<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
use Auth;
use App\Models\User;
use App\Models\Settings\Roles;
use App\Models\Settings\Permissions;
use App\Notifications\OffersNotification;
use App\Models\Notification\Notifications;

class HomeController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Contracts\Support\Renderable
     */
    public function index()
    {
        $active_user_count = User::where('status',1)->count();
        $user_record_pie = User::where('status',1)->get();
        $data_user_pie = [];
        foreach($user_record_pie as $user_record_pie_val) 
        {
            $data_user_pie['label'][] = $user_record_pie_val->name;
            $data_user_pie['data'][] = (int) $user_record_pie_val->count();
        }
        $datajson = json_encode($data_user_pie);

        $active_role_count = Roles::where('status',1)->count();
        $role_record_bar = Roles::where('status',1)->get();
        $data_role_bar = [];
        foreach($role_record_bar as $role_record_bar_val) 
        {
            $data_role_bar['label'][] = $role_record_bar_val->name;
            $data_role_bar['data'][] = (int) $role_record_bar_val->count();
        }
        $datajson_bar = json_encode($data_role_bar);

        $id = Auth::user()->id;
        $notifications = auth()->user()->unreadNotifications;
        $notification_count = auth()->user()->unreadNotifications->count();
        //$notifications = Notifications::where('notifiable_id',$id)->orderBy('id','desc')->get();
        //dd($notification_count);
        return view('home', compact('datajson','active_user_count','datajson_bar','active_role_count','notifications','notification_count'));
    }

    public function markNotification(Request $request)
    {
        Auth()->user()
            ->unreadNotifications
            ->when($request->input('id'), function ($query) use ($request) {
                return $query->where('id', $request->input('id'));
            })
            ->markAsRead();

        return response()->noContent();
    }
    public function notification_all()
    {
        $id = Auth::user()->id;
        $notifications = Notifications::where('notifiable_id',$id)->orderBy('id','desc')->get();
        //dd($notifications);
        return view('notification_all', compact('notifications'));
    }

    public function change(Request $request)
    {
        dd($request);
        $email = $request->email;
        $users = User::where('email',$email)->first();
        return view('change', compact('users'));
    }
}
