. /** * Emulates an enum type to keep available filtering options. Defines default values for the options as well. * * @copyright 2022 onwards Vitaly Potenko * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ namespace mod_adaptivequiz\local\report\users_attempts\filter; final class filter_options { public const ENROLLED_USERS_WITH_NO_ATTEMPTS = 1; public const ENROLLED_USERS_WITH_ATTEMPTS = 2; public const BOTH_ENROLLED_AND_NOT_ENROLLED_USERS_WITH_ATTEMPTS = 3; public const NOT_ENROLLED_USERS_WITH_ATTEMPTS = 4; public const INCLUDE_INACTIVE_ENROLMENTS_DEFAULT = 1; public static function users_option_default(): int { return self::BOTH_ENROLLED_AND_NOT_ENROLLED_USERS_WITH_ATTEMPTS; } public static function users_option_exists(int $option): bool { return in_array($option, [ self::ENROLLED_USERS_WITH_NO_ATTEMPTS, self::ENROLLED_USERS_WITH_ATTEMPTS, self::BOTH_ENROLLED_AND_NOT_ENROLLED_USERS_WITH_ATTEMPTS, self::NOT_ENROLLED_USERS_WITH_ATTEMPTS ]); } }