'사용자 수동 비활성화', self::IncompatibleCore => '코어 버전 호환성', }; } /** * 시스템(자동) 트리거 여부 * * true 인 경우 알림 영속화 + 원클릭 복구 UX 대상이 됩니다. */ public function isSystemTriggered(): bool { return match ($this) { self::Manual => false, self::IncompatibleCore => true, }; } /** * 모든 값 배열 * * @return array */ public static function values(): array { return array_column(self::cases(), 'value'); } /** * 유효한 값인지 확인 */ public static function isValid(string $value): bool { return in_array($value, self::values(), true); } }