<?php

declare(strict_types=1);

namespace Seka\Terminy;

use Seka\Terminy\Events\Udalost\UdalostBolaZrusena;
use Seka\Terminy\Events\Udalost\UdalostBolaObnovena;
use App\Events\Notifications\GetViewForNotification;
use Seka\Terminy\Listeners\Udalost\NotificationView;
use Seka\Terminy\Events\Udalost\BolaVytvorenaNovaUdalost;
use Seka\Terminy\Events\Udalost\UdalostBolaAktualizovana;
use Seka\Terminy\Listeners\Udalost\ZrusitUdalostVKalendari;
use Seka\Terminy\Listeners\Udalost\ZverejnitUdalostVKalendari;
use Seka\Terminy\Listeners\Udalost\AktualizovatUdalostVKalendari;
use Seka\Terminy\Listeners\Udalost\OdoslatNotifikacieOZrusenejUdalosti;
use Seka\Terminy\Listeners\Udalost\OdoslatNotifikacieOAktualizovanejUdalosti;
use Seka\Terminy\Listeners\Udalost\OdoslatNotifikacieOZverejneniNovejUdalosti;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;

/**
 * Class EventServiceProvider
 *
 * @package Seka\Terminy
 */
final class EventServiceProvider extends ServiceProvider
{
    /**
     * @var \string[][]
     */
    protected $listen = [
        GetViewForNotification::class => [
            NotificationView::class,
        ],
        BolaVytvorenaNovaUdalost::class => [
            ZverejnitUdalostVKalendari::class,
            OdoslatNotifikacieOZverejneniNovejUdalosti::class,
        ],
        UdalostBolaAktualizovana::class => [
            AktualizovatUdalostVKalendari::class,
            OdoslatNotifikacieOAktualizovanejUdalosti::class,
        ],
        UdalostBolaZrusena::class => [
            ZrusitUdalostVKalendari::class,
            OdoslatNotifikacieOZrusenejUdalosti::class,
        ],
        UdalostBolaObnovena::class => [
            OdoslatNotifikacieOZverejneniNovejUdalosti::class,
        ]
    ];

    /**
     *
     */
    public function boot(): void
    {
        parent::boot();
    }
}
