<?php

namespace App\Jobs;

use App\Services\FavouriteDataService;
use App\Libs\Services\FcmService;
use App\Services\DeviceDataService;
use App\Services\FcmMessageDataService;


class ProcessOpeningTomorrowFavouriteArtistNotifications extends ProcessFavouriteNotifications
{


    protected string $typeIdentifier = FcmMessageDataService::FAVOURITE_ARTIST_EXHIBITION_OPENING_TOMORROW_TYPE;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->onQueue(static::QUEUE);
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle(
        FcmService $fcmService,
        FavouriteDataService $favouriteDataService,
        FcmMessageDataService $fcmMessageDataService,
        DeviceDataService $deviceDataService
    ) {

        if (!FcmService::areFcmNotificationsActive()) {
            return;
        }


        parent::handle($fcmService, $favouriteDataService, $fcmMessageDataService, $deviceDataService);

        //getting the base structure for messages to be sent
        $favouriteArtistExhibitionsFavouritesInfo = $this->favouriteDataService->getArtistOpeningInFutureExhibitionFavourites();

        $this->processExhibitionsFavourites($favouriteArtistExhibitionsFavouritesInfo);
    }
}
