<?php
namespace App\Providers;
use App\Events\LibraryChanged;
use App\Events\MediaScanCompleted;
use App\Events\MultipleSongsLiked;
use App\Events\MultipleSongsUnliked;
use App\Events\NewPlaylistCollaboratorJoined;
use App\Events\PlaybackStarted;
use App\Events\SongFavoriteToggled;
use App\Events\UserUnsubscribedFromPodcast;
use App\Listeners\DeleteNonExistingRecordsPostScan;
use App\Listeners\DeletePodcastIfNoSubscribers;
use App\Listeners\LoveMultipleTracksOnLastfm;
use App\Listeners\LoveTrackOnLastfm;
use App\Listeners\MakePlaylistSongsPublic;
use App\Listeners\PruneLibrary;
use App\Listeners\UnloveMultipleTracksOnLastfm;
use App\Listeners\UpdateLastfmNowPlaying;
use App\Listeners\WriteScanLog;
use App\Models\Album;
use App\Models\Artist;
use App\Models\Folder;
use App\Models\Genre;
use App\Models\Playlist;
use App\Models\PlaylistCollaborationToken;
use App\Models\RadioStation;
use App\Models\Theme;
use App\Models\User;
use App\Observers\AlbumObserver;
use App\Observers\ArtistObserver;
use App\Observers\FolderObserver;
use App\Observers\GenreObserver;
use App\Observers\PlaylistCollaborationTokenObserver;
use App\Observers\PlaylistObserver;
use App\Observers\RadioStationObserver;
use App\Observers\ThemeObserver;
use App\Observers\UserObserver;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as BaseServiceProvider;
class EventServiceProvider extends BaseServiceProvider
{
protected $listen = [
SongFavoriteToggled::class => [
LoveTrackOnLastfm::class,
],
MultipleSongsLiked::class => [
LoveMultipleTracksOnLastfm::class,
],
MultipleSongsUnliked::class => [
UnloveMultipleTracksOnLastfm::class,
],
PlaybackStarted::class => [
UpdateLastfmNowPlaying::class,
],
LibraryChanged::class => [
PruneLibrary::class,
],
MediaScanCompleted::class => [
DeleteNonExistingRecordsPostScan::class,
PruneLibrary::class,
WriteScanLog::class,
],
NewPlaylistCollaboratorJoined::class => [
MakePlaylistSongsPublic::class,
],
UserUnsubscribedFromPodcast::class => [
DeletePodcastIfNoSubscribers::class,
],
];
public function boot(): void
{
parent::boot();
Album::observe(AlbumObserver::class);
Artist::observe(ArtistObserver::class);
Folder::observe(FolderObserver::class);
Playlist::observe(PlaylistObserver::class);
PlaylistCollaborationToken::observe(PlaylistCollaborationTokenObserver::class);
Genre::observe(GenreObserver::class);
User::observe(UserObserver::class);
RadioStation::observe(RadioStationObserver::class);
Theme::observe(ThemeObserver::class);
}
}