<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Notifications\DatabaseNotification;
use Illuminate\Notifications\Notification;
use Illuminate\Support\Facades\Auth;

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

    /**
     * Marque comme "lu" la notification sélectionnée par l'utilisateur.
     * @param Request $request
     * @param DatabaseNotification $notification
     * @return \Illuminate\Http\RedirectResponse
     */
    public function update(Request $request, DatabaseNotification $notification)
    {
        $notification->markAsRead();
        return back();
    }

    /**
     * Marque comme "lu" toutes les notifications de l'utilisateur.
     * @return \Illuminate\Http\RedirectResponse
     */
    public function update_all()
    {
        Auth::user()->unreadNotifications->markAsRead();
        return back();
    }

    /**
     * Permet de marquer une notification en lu
     * Est appelé par un call AJAX
     * @param Request $request
     */
    public function markAsRead(Request $request)
    {
        Auth::user()->unreadNotifications->where('id', $request->notification_id)->markAsRead();
    }
}
