<?php

namespace App\Providers;

use App\Events\V1\EventAccountAggregatorWebhook;
use App\Events\V1\EventPayTMUpdate;
use App\Events\V1\EventPirimidWebhook;
use App\Events\V1\EventAuditorService;
use App\Events\V1\EventAutoDecision;
use App\Events\V1\EventAvansePaymentProcess;
use App\Events\V1\EventABFLWebhook;
use App\Events\V1\EventDigioWebhook;
use App\Events\V1\EventCheckPreEligibility;
use App\Events\V1\EventWhatsappAgentMigrateDocuments;
use App\Events\V1\EventHomevilleWebhook;
use App\Events\V1\EventJMWebhook;
use App\Events\V1\EventHypothecation;
use App\Events\V1\EventNoTouchBureauCall;
use App\Events\V1\EventSignedDAUpload;
use App\Events\V1\EventMandateWebhook;
use App\Events\V1\EventMConnectWebhook;
use App\Events\V1\EventMonthlySubventionInvoice;
use App\Events\V1\EventPostBureauPull;
use App\Events\V1\EventPostCSBureauBankPull;
use App\Events\V1\EventPushNotificationToMerchant;
use App\Events\V1\EventSendDbBackupEmail;
use App\Events\V1\EventJobs;
use App\Events\V1\EventSendOtpSms;
use App\Events\V1\EventSentOtpEmail;
use App\Events\V1\EventTableOfOffer;
use App\Events\V1\EventTallySubInt;
use App\Events\V1\EventUtkarshWebhook;
use App\Events\V1\EventVendorWebhook;
use App\Events\V1\EventVivritiWebhook;
use App\Events\V1\EventVkycApproved;
use App\Events\V1\EventPostCreateCustomer;
use App\Events\V1\EventPostCreateFinance;
use App\Events\V1\EventPostDisbursementInstruction;
use App\Events\V1\EventLendboxDocumentUpload;
use App\Events\V1\EventKMGP2PDocumentUpload;
use App\Events\V1\EventPostFormCompleted;
use App\Events\V1\EventAvanseNoc;
use App\Events\V1\EventPincodeImport;
use App\Events\V1\EventAgencyCommunication;
use App\Events\V1\EventAgencyApplication;
use App\Events\V1\EventVkycWebhook;
use App\Events\V1\EventLendboxRepayments;
use App\Events\V1\EventLendboxTransactionStatus;
use App\Events\V1\EventBreApiCall;
use App\Listeners\V1\ListenerABFLWebhook;
use App\Listeners\V1\ListenerAccountAggregatorWebhook;
use App\Listeners\V1\ListenerPayTMUpdate;
use App\Listeners\V1\ListenerPirimidWebhook;
use App\Listeners\V1\ListenerAuditService;
use App\Listeners\V1\ListenerAutoDecision;
use App\Listeners\V1\ListenerAvansePaymentProcess;
use App\Listeners\V1\ListenerDigioWebhook;
use App\Listeners\V1\ListenerCheckPreEligibility;
use App\Listeners\V1\ListenerHomevilleWebhook;
use App\Listeners\V1\ListenerJMWebhook;
use App\Listeners\V1\ListenerHypothecation;
use App\Listeners\V1\ListenerNoTouchBureauCall;
use App\Listeners\V1\ListenerSignedDAUpload;
use App\Listeners\V1\ListenerMandateWebhook;
use App\Listeners\V1\ListenerMConnectWebhook;
use App\Listeners\V1\ListenerPostBureauPull;
use App\Listeners\V1\ListenerPostCSBureauBankPull;
use App\Listeners\V1\ListenerSendDbBackupEmail;
use App\Listeners\V1\ListenerEventJobs;
use App\Listeners\V1\ListenerSendOtpSms;
use App\Listeners\V1\ListenerSentOtpEmail;
use App\Listeners\V1\ListenerTableOfOffer;
use App\Listeners\V1\ListenerTallySubInt;
use App\Listeners\V1\ListenerUtkarshWebhook;
use App\Listeners\V1\ListenerVendorWebhook;
use App\Listeners\V1\ListenerVivritiWebhook;
use App\Listeners\V1\ListenerVkycApproved;
use App\Listeners\V1\ListenerPostCreateCustomer;
use App\Listeners\V1\ListenerPostCreateFinance;
use App\Listeners\V1\ListenerPostDisbursementInstruction;
use App\Listeners\V1\ListenerPostFormCompleted;
use App\Listeners\V1\ListnerPushNotificationToMerchant;
use App\Listeners\V1\ListenerLendboxDocumentUpload;
use App\Listeners\V1\ListenerKMGP2PDocumentUpload;
use App\Listeners\V1\ListenerVkycWebhook;
use App\Listeners\V1\ListenerPincodeImport;
use App\Listeners\V1\ListenerAvanseNoc;
use App\Listeners\V1\ListenerAgencyCommunication;
use App\Listeners\V1\ListenerAgencyApplication;
use App\Listeners\V1\ListenerMonthlySubventionInvoice;
use App\Listeners\V1\ListenerLendboxRepayments;
use App\Listeners\V1\ListenerLendboxTransactionStatus;
use App\Listeners\V1\ListenerBreApiCall;
use App\Listeners\V1\MailerLogs;
use App\Listeners\V1\TransactionInitiated;
use Illuminate\Mail\Events\MessageSent;
use Illuminate\Support\Facades\Event;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;


class EventServiceProvider extends ServiceProvider
{
    /**
     * The event listener mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        'App\Events\Event' => [
            'App\Listeners\EventListener',
        ],

        EventSentOtpEmail::class => [
            ListenerSentOtpEmail::class
        ],
        EventSendOtpSms::class => [
            ListenerSendOtpSms::class
        ],
        EventSendDbBackupEmail::class => [
            ListenerSendDbBackupEmail::class
        ],
        EventJobs::class => [
            ListenerEventJobs::class
        ],
        EventVkycApproved::class => [
            ListenerVkycApproved::class
        ],
        EventPostCreateCustomer::class => [
            ListenerPostCreateCustomer::class
        ],
        EventPostCreateFinance::class => [
            ListenerPostCreateFinance::class
        ],
        EventPostDisbursementInstruction::class => [
            ListenerPostDisbursementInstruction::class
        ],
        EventPostFormCompleted::class => [
            ListenerPostFormCompleted::class
        ],
        EventPostBureauPull::class => [
            ListenerPostBureauPull::class
        ],
        EventPostCSBureauBankPull::class => [
            ListenerPostCSBureauBankPull::class
        ],
        EventAvansePaymentProcess::class => [
            ListenerAvansePaymentProcess::class
        ],
        EventPincodeImport::class => [
            ListenerPincodeImport::class
        ],
        EventPushNotificationToMerchant::class => [
            ListnerPushNotificationToMerchant::class
        ],
        EventAvanseNoc::class => [
            ListenerAvanseNoc::class
        ],
        EventVkycWebhook::class => [
            ListenerVkycWebhook::class
        ],
        EventMConnectWebhook::class => [
            ListenerMConnectWebhook::class
        ],
        EventABFLWebhook::class => [
            ListenerABFLWebhook::class
        ],
        EventVendorWebhook::class => [
            ListenerVendorWebhook::class
        ],
        EventTableOfOffer::class => [
            ListenerTableOfOffer::class
        ],
        EventHypothecation::class => [
            ListenerHypothecation::class
        ],
        EventLendboxDocumentUpload::class => [
            ListenerLendboxDocumentUpload::class
        ],
        EventKMGP2PDocumentUpload::class => [
            ListenerKMGP2PDocumentUpload::class
        ],
        EventTallySubInt::class => [
            ListenerTallySubInt::class
        ],
        EventAgencyCommunication::class => [
            ListenerAgencyCommunication::class
        ],
        EventAgencyApplication::class => [
            ListenerAgencyApplication::class
        ],
        EventMonthlySubventionInvoice::class => [
            ListenerMonthlySubventionInvoice::class
        ],
        EventLendboxRepayments::class => [
            ListenerLendboxRepayments::class
        ],
        EventLendboxTransactionStatus::class => [
            ListenerLendboxTransactionStatus::class
        ],
        EventAccountAggregatorWebhook::class => [
            ListenerAccountAggregatorWebhook::class
        ],
        EventPirimidWebhook::class => [
            ListenerPirimidWebhook::class
        ],
        EventDigioWebhook::class => [
            ListenerDigioWebhook::class
        ],
        EventWhatsappAgentMigrateDocuments::class => [
            ListenerWhatsappAgentMigrateDocuments::class
        ],
        EventCheckPreEligibility::class => [
            ListenerCheckPreEligibility::class
        ],
        EventNoTouchBureauCall::class => [
            ListenerNoTouchBureauCall::class
        ],
        EventSignedDAUpload::class => [
            ListenerSignedDAUpload::class
        ],
        EventAutoDecision::class => [
            ListenerAutoDecision::class
        ],
        EventJMWebhook::class => [
            ListenerJMWebhook::class
        ],
        EventVivritiWebhook::class => [
            ListenerVivritiWebhook::class
        ],
        EventUtkarshWebhook::class => [
            ListenerUtkarshWebhook::class
        ],
        EventHomevilleWebhook::class => [
            ListenerHomevilleWebhook::class
        ],
        EventAuditorService::class => [
            ListenerAuditService::class
        ],
        EventBreApiCall::class => [
            ListenerBreApiCall::class
        ],
        'eloquent.saved: App\PaymentTransaction' => [
            TransactionInitiated::class,
        ],
        EventPayTMUpdate::class => [
            ListenerPayTMUpdate::class
        ],
        MessageSent::class => [
            MailerLogs::class,
        ],
        EventAccountAggregatorMonitoringWebhook::class => [
            ListenerAccountAggregatorMonitoringWebhook::class
        ]
    ];

    /**
     * Register any events for your application.
     *
     * @return void
     */
    public function boot()
    {
        parent::boot();

        //
    }
}
