'notify_welcome', self::PROGRAMME_CHANGED => 'notify_programme', self::JOB_ROLE_CHANGED => 'notify_job_role', self::ENROLLED_BULK, self::UNENROLLED_BULK => 'notify_bulk', self::QUIZ_REGRADED => '', self::RESULTS_RELEASED => 'notify_results', self::ANNOUNCEMENT => 'notify_announcements', self::PLAN_EXPIRING, self::PLAN_STATUS => '', self::LIVE_REMINDER_24H, self::LIVE_REMINDER_1H => 'notify_live_reminders', self::LIVE_CHANGED, self::LIVE_CANCELLED => 'notify_live_changes', self::RECORDING_AVAILABLE => 'notify_live_recordings', self::EARLIER_LEARNERS => '', self::STAFF_ENROLLED, self::STAFF_COMPLETED => '', self::INVITATION => '', self::PLACEMENT_CHANGED, self::PROMOTION_COMPLETED => '', self::STAFF_TO_GRADE => '', self::QUIZ_REPORT_NEW, self::QUIZ_REPORT_ANSWERED => '', }; } public function without_switch(): string { return match ( $this ) { self::QUIZ_REGRADED => __( 'only when a regrade asks for it', 'rooster-lms' ), self::PLAN_EXPIRING, self::PLAN_STATUS => __( 'always (the plan\'s managers or holder)', 'rooster-lms' ), self::STAFF_ENROLLED, self::STAFF_COMPLETED => __( 'to the course\'s trainers, switched in the notification centre', 'rooster-lms' ), self::PLACEMENT_CHANGED, self::PROMOTION_COMPLETED => __( 'when the Enterprise add-on places learners, switched in the notification centre', 'rooster-lms' ), self::STAFF_TO_GRADE => __( 'to the people who may grade the course\'s work, switched in the notification centre', 'rooster-lms' ), self::QUIZ_REPORT_NEW => __( 'to the people who may grade the quiz, switched in the notification centre', 'rooster-lms' ), self::QUIZ_REPORT_ANSWERED => __( 'to the learner who reported the problem, switched in the notification centre', 'rooster-lms' ), default => '', }; } public function is_live(): bool { return in_array( $this, array( self::LIVE_REMINDER_24H, self::LIVE_REMINDER_1H, self::LIVE_CHANGED, self::LIVE_CANCELLED, self::RECORDING_AVAILABLE ), true ); } public function is_offer(): bool { return self::EARLIER_LEARNERS === $this; } public function is_digest(): bool { return self::PROGRAMME_CHANGED === $this || self::JOB_ROLE_CHANGED === $this || $this->is_staff() || self::QUIZ_REPORT_NEW === $this; } public function is_report(): bool { return self::QUIZ_REPORT_NEW === $this || self::QUIZ_REPORT_ANSWERED === $this; } public function is_staff(): bool { return self::STAFF_ENROLLED === $this || self::STAFF_COMPLETED === $this || self::STAFF_TO_GRADE === $this; } public function is_grading(): bool { return self::STAFF_TO_GRADE === $this; } public function label(): string { return match ( $this ) { self::WELCOME => __( 'Welcome with the course list', 'rooster-lms' ), self::PROGRAMME_CHANGED => __( 'New in your training programme', 'rooster-lms' ), self::JOB_ROLE_CHANGED => __( 'Job role changed', 'rooster-lms' ), self::ENROLLED_BULK => __( 'Enrolled in courses', 'rooster-lms' ), self::UNENROLLED_BULK => __( 'Removed from courses', 'rooster-lms' ), self::QUIZ_REGRADED => __( 'Quiz result updated', 'rooster-lms' ), self::RESULTS_RELEASED => __( 'Exam results published', 'rooster-lms' ), self::ANNOUNCEMENT => __( 'Announcements', 'rooster-lms' ), self::PLAN_EXPIRING => __( 'Plan ending soon', 'rooster-lms' ), self::PLAN_STATUS => __( 'Plan ended', 'rooster-lms' ), self::LIVE_REMINDER_24H => __( 'Live lesson tomorrow', 'rooster-lms' ), self::LIVE_REMINDER_1H => __( 'Live lesson in one hour', 'rooster-lms' ), self::LIVE_CHANGED => __( 'Live lesson moved', 'rooster-lms' ), self::LIVE_CANCELLED => __( 'Live lesson cancelled', 'rooster-lms' ), self::RECORDING_AVAILABLE => __( 'Recording available', 'rooster-lms' ), self::EARLIER_LEARNERS => __( 'New lesson for earlier learners', 'rooster-lms' ), self::STAFF_ENROLLED => __( 'New learners in your courses', 'rooster-lms' ), self::STAFF_COMPLETED => __( 'Learners completed your courses', 'rooster-lms' ), self::INVITATION => __( 'Invitation to a lesson', 'rooster-lms' ), self::PLACEMENT_CHANGED => __( 'Your placement has changed', 'rooster-lms' ), self::PROMOTION_COMPLETED => __( 'Promotion completed', 'rooster-lms' ), self::STAFF_TO_GRADE => __( 'Work waiting for a grade', 'rooster-lms' ), self::QUIZ_REPORT_NEW => __( 'A learner reported a problem with a quiz', 'rooster-lms' ), self::QUIZ_REPORT_ANSWERED => __( 'Your problem report was answered', 'rooster-lms' ), }; } }