<?php

declare(strict_types=1);

namespace Seka\Portal\Modul\Vzdelavanie\Providers;

use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use Seka\Portal\Modul\Vzdelavanie\Events\Kniznica\Backend\KategoriaCreated;
use Seka\Portal\Modul\Vzdelavanie\Events\Kniznica\Backend\KategoriaDeleted;
use Seka\Portal\Modul\Vzdelavanie\Events\Kniznica\Backend\KategoriaUpdated;
use Seka\Portal\Modul\Vzdelavanie\Events\Kniznica\Backend\SekciaCreated;
use Seka\Portal\Modul\Vzdelavanie\Events\Kniznica\Backend\SekciaDeleted;
use Seka\Portal\Modul\Vzdelavanie\Events\Kniznica\Backend\SekciaUpdated;
use Seka\Portal\Modul\Vzdelavanie\Events\Kniznica\Backend\UcebnyMaterialCreated;
use Seka\Portal\Modul\Vzdelavanie\Events\Kniznica\Backend\UcebnyMaterialDeleted;
use Seka\Portal\Modul\Vzdelavanie\Events\Kniznica\Backend\UcebnyMaterialUpdated;
use Seka\Portal\Modul\Vzdelavanie\Events\Kniznica\Frontend\SekciaOpened;
use Seka\Portal\Modul\Vzdelavanie\Events\Kniznica\Frontend\UcebnyMaterialOpened;
use Seka\Portal\Modul\Vzdelavanie\Events\Testovanie\Frontend\TestGenerated;
use Seka\Portal\Modul\Vzdelavanie\Events\Testovanie\Frontend\TestSpustenie;
use Seka\Portal\Modul\Vzdelavanie\Events\Testovanie\Frontend\TestVyhodnotenie;
use Seka\Portal\Modul\Vzdelavanie\Listeners\Kniznica\AktivitaVzdelavanieKniznicaKategoria;
use Seka\Portal\Modul\Vzdelavanie\Listeners\Kniznica\AktivitaVzdelavanieKniznicaSekciaUcebnehoMaterialu;
use Seka\Portal\Modul\Vzdelavanie\Listeners\Kniznica\AktivitaVzdelavanieKniznicaUcebnyMaterial;
use Seka\Portal\Modul\Vzdelavanie\Listeners\Kniznica\SekciaCreatePopularityRecord;
use Seka\Portal\Modul\Vzdelavanie\Listeners\Kniznica\UcebnyMaterialCreatePopularityRecord;
use Seka\Portal\Modul\Vzdelavanie\Listeners\Testovanie\AktivitaVzdelavanieTestovanieGenerovanieTestuPouzivatelom;
use Seka\Portal\Modul\Vzdelavanie\Listeners\Testovanie\AktivitaVzdelavanieTestovanieSpustenieTestuPouzivatelom;
use Seka\Portal\Modul\Vzdelavanie\Listeners\Testovanie\AktivitaVzdelavanieTestovanieVyhodnotenieTestuPouzivatelom;
use Seka\Portal\Modul\Vzdelavanie\Listeners\Testovanie\TestCreatePopularityRecord;

/**
 * Class EventServiceProvider
 *
 * @package Seka\Portal\Modul\Vzdelavanie\Providers
 */
final class EventServiceProvider extends ServiceProvider
{
    /**
     * @var \string[][]
     */
    protected $listen = [
        UcebnyMaterialOpened::class => [
            UcebnyMaterialCreatePopularityRecord::class,
            AktivitaVzdelavanieKniznicaUcebnyMaterial::class,
        ],
        SekciaOpened::class => [
            SekciaCreatePopularityRecord::class,
            AktivitaVzdelavanieKniznicaSekciaUcebnehoMaterialu::class,
        ],
        TestGenerated::class => [
            TestCreatePopularityRecord::class,
            AktivitaVzdelavanieTestovanieGenerovanieTestuPouzivatelom::class,
        ],
        TestSpustenie::class => [
            AktivitaVzdelavanieTestovanieSpustenieTestuPouzivatelom::class,
        ],
        TestVyhodnotenie::class => [
            AktivitaVzdelavanieTestovanieVyhodnotenieTestuPouzivatelom::class,
        ],
        KategoriaCreated::class => [
            AktivitaVzdelavanieKniznicaKategoria::class,
        ],
        KategoriaUpdated::class => [
            AktivitaVzdelavanieKniznicaKategoria::class,
        ],
        KategoriaDeleted::class => [
            AktivitaVzdelavanieKniznicaKategoria::class,
        ],
        UcebnyMaterialCreated::class => [
            AktivitaVzdelavanieKniznicaUcebnyMaterial::class,
        ],
        UcebnyMaterialUpdated::class => [
            AktivitaVzdelavanieKniznicaUcebnyMaterial::class,
        ],
        UcebnyMaterialDeleted::class => [
            AktivitaVzdelavanieKniznicaUcebnyMaterial::class,
        ],
        SekciaCreated::class => [
            AktivitaVzdelavanieKniznicaSekciaUcebnehoMaterialu::class,
        ],
        SekciaUpdated::class => [
            AktivitaVzdelavanieKniznicaSekciaUcebnehoMaterialu::class,
        ],
        SekciaDeleted::class => [
            AktivitaVzdelavanieKniznicaSekciaUcebnehoMaterialu::class,
        ],
    ];
}
