<?php

namespace App\Providers;

use App\Events\V3\Dashboard\Harim\ConfirmGuaranteeLetterNeedEvent;
use App\Events\V3\Dashboard\Harim\ConfirmNoRoadAccessNeedEvent;
use App\Events\V3\Dashboard\Harim\ConfirmRoadAccessEditNeedEvent;
use App\Events\V3\Dashboard\Harim\ConfirmRoadAccessNeedEvent;
use App\Events\V3\Dashboard\Harim\RejectRequestEvent;
use App\Events\V3\Dashboard\Mission\SendDataToFMSEvent;
use App\Listeners\V3\Dashboard\Harim\ConfirmGuaranteeLetterNeedListener;
use App\Listeners\V3\Dashboard\Harim\ConfirmNoRoadAccessNeedListener;
use App\Listeners\V3\Dashboard\Harim\ConfirmRoadAccessEditNeedListener;
use App\Listeners\V3\Dashboard\Harim\ConfirmRoadAccessNeedListener;
use App\Listeners\V3\Dashboard\Harim\RejectRequestListener;
use App\Listeners\V3\Dashboard\Mission\SendDataToFMSListener;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Event;

class EventServiceProvider extends ServiceProvider
{
    /**
     * The event listener mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        Registered::class => [
            SendEmailVerificationNotification::class,
        ],
        
        'Illuminate\Auth\Events\Logout' => [
            'App\Listeners\LogSuccessfulLogout',
        ],
        'Illuminate\Auth\Events\Login' => [
            'App\Listeners\LogSuccessfulLogin',
        ],

        RejectRequestEvent::class => [
            RejectRequestListener::class
        ],
        ConfirmRoadAccessNeedEvent::class => [
            ConfirmRoadAccessNeedListener::class
        ],
        ConfirmNoRoadAccessNeedEvent::class => [
            ConfirmNoRoadAccessNeedListener::class
        ],
        ConfirmRoadAccessEditNeedEvent::class => [
            ConfirmRoadAccessEditNeedListener::class
        ],
        ConfirmGuaranteeLetterNeedEvent::class => [
            ConfirmGuaranteeLetterNeedListener::class
        ],
        SendDataToFMSEvent::class => [
            SendDataToFMSListener::class
        ]
    ];

    /**
     * Register any events for your application.
     *
     * @return void
     */
    public function boot()
    {
        parent::boot();

        //
    }
}