<?php

namespace App\Providers;

use App\Events\WhatsappInvitesSend;
use App\Events\DeleteUnverifiedUser;
use App\Listeners\AttendanceConsequenceListener;
use App\Listeners\BelowSixtyEmailListener;
use App\Listeners\DeleteUnverifiedUserListener;
use App\Listeners\SchoolEventListener;
use App\Listeners\WhatsappInviteListener;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;

class EventServiceProvider extends ServiceProvider
{
    protected $listen = [
        'attendance.follow_up' => [
            AttendanceConsequenceListener::class . '@followUp',
        ],
        'attendance.final_warning' => [
            AttendanceConsequenceListener::class . '@finalWarning',
        ],
        'attendance.dismissal' => [
            AttendanceConsequenceListener::class . '@dismissal',
        ],
        'below60.email' => [
            BelowSixtyEmailListener::class,
        ],
        'admissionUnderReview' => [
            SchoolEventListener::class . '@handleAdmissionUnderReview',
        ],
        'paymentPending' => [
            SchoolEventListener::class . '@handlePaymentPending',
        ],
        'studentEnrolled' => [
            SchoolEventListener::class . '@handleStudentEnrolled',
        ],
        'withdrawUnderReview' => [
            SchoolEventListener::class . '@handleWithdrawUnderReview',
        ],
        'refundPending' => [
            SchoolEventListener::class . '@handleRefundPending',
        ],
        'withdrawn' => [
            SchoolEventListener::class . '@handleWithdrawn',
        ],
        'denied' => [
            SchoolEventListener::class . '@handleDenied',
        ],
        'waitlist' => [
            SchoolEventListener::class . '@handleWaitlist',
        ],
        'enrollmentStatusChanged' => [
            SchoolEventListener::class . '@handleEnrollmentStatusChanged',
        ],
        'paymentReceived' => [
            SchoolEventListener::class . '@handlePaymentReceived',
        ],
        'extraCharge' => [
            SchoolEventListener::class . '@handleExtraCharge',
        ],
        'newAccountAdded' => [
            SchoolEventListener::class . '@handleNewAccountAdded',
        ],
        'studentRegistered' => [
            SchoolEventListener::class . '@handleStudentRegistered',
        ],
        'delete_unverified_user' => [
            SchoolEventListener::class . '@handleDeleteUnverifiedUser',
        ],
        'userRegistered' => [
            SchoolEventListener::class . '@handleUserRegistered',
        ],
        'userProfileUpdated' => [
            SchoolEventListener::class . '@handleUserProfileUpdated',
        ],
        'userDeactivated' => [
            SchoolEventListener::class . '@handleUserDeactivated',
        ],
        'scoresPosted' => [
            SchoolEventListener::class . '@handleScoresPosted',
        ],
        'finalScoreReleased' => [
            SchoolEventListener::class . '@handleFinalScoreReleased',
        ],
        'studentMarkedAbsent' => [
            SchoolEventListener::class . '@handleStudentMarkedAbsent',
        ],
        'studentMarkedLate' => [
            SchoolEventListener::class . '@handleStudentMarkedLate',
        ],
        'paymentMissed' => [
            SchoolEventListener::class . '@handlePaymentMissed',
        ],
        'classScheduleUpdated' => [
            SchoolEventListener::class . '@handleClassScheduleUpdated',
        ],
        'newMessageReceived' => [
            SchoolEventListener::class . '@handleNewMessageReceived',
        ],
        'systemAnnouncementPosted' => [
            SchoolEventListener::class . '@handleSystemAnnouncementPosted',
        ],
        'customNotification' => [
            SchoolEventListener::class . '@handleCustomNotification',
        ],
        DeleteUnverifiedUser::class => [
            DeleteUnverifiedUserListener::class,
        ],
        WhatsappInvitesSend::class => [
            WhatsappInviteListener::class,
        ],
    ];
}
