<?php

namespace App\Providers;

use App\Libs\Database\Observers\BlockLanguageObserver;
use App\Libs\Database\Observers\BlockTimelineItemObserver;
use App\Libs\Database\Observers\BigMenuObserver;
use App\Libs\Events\ContentTypeSaved;
use App\Libs\Events\ContentTypeDeleted;
use App\Libs\Listeners\RebuildRedirects;
use App\Libs\Database\Observers\WebsiteObjectObserver;
use App\Libs\Events\ContentTypeRestored;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;


class EventServiceProvider extends ServiceProvider
{
    /**
     * The event listener mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        Registered::class => [
            SendEmailVerificationNotification::class,
        ],
        ContentTypeSaved::class => [
            RebuildRedirects::class,
        ],
        ContentTypeDeleted::class => [
            RebuildRedirects::class,
        ],
        ContentTypeRestored::class => [
            RebuildRedirects::class,
        ]
    ];

    /**
     * Register any events for your application.
     *
     * @return void
     */
    public function boot()
    {
        parent::boot();
        \App\Models\BlockLanguage::observe(BlockLanguageObserver::class);
        \App\Models\BlockTimelineItemLanguage::observe(BlockTimelineItemObserver::class);
        \App\Models\BigMenu::observe(BigMenuObserver::class);
        \App\Models\WebsiteObject::observe(WebsiteObjectObserver::class);
    }
}
