<?php
/**
 * HappyFenceNG Total Enterprise Security Plugin
 * HAPPYWPRESS is a RazorVue Trademark.
 *
 * @package     HappyFenceNG
 * @developer   Simonluca Scillitani
 * @copyright   2025 RazorVue di Scillitani Simonluca
 * @link        https://razorvue.it
 * @author      RazorVue di Scillitani Simonluca
 * @brand       HappyWPress
 * @uri         https://happywpress.com
 * @set all
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**PHPCS -> code compliance: we put useful comments where needed.. */
class HappyFenceNGMControl extends HappyFenceNGSystem {

	/**PHPCS -> code compliance: we put useful comments where needed.. */
	public function init() {
			HappyFenceNGLOGCORE::logcore(
				static::class . ' (CALL)',
				HappyFenceNGSyslogFacility::INIT,
				HappyFenceNGSyslogSeverity::AUDIT
			);

				HappyFenceNGCStoreBuilder::checkAndBuild();
				parent::exc( HappyFenceNGL::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M09 );
				parent::exc( HappyFenceNGWpCli::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M38 );
				parent::exc( HappyFenceNGDashboard::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M17 );
				parent::exc( HappyFenceNGFunnel::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M01 );
				parent::exc( HappyFenceNGPreamble::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M02 );
				parent::exc( HappyFenceNGBunker::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M03 );
				parent::exc( HappyFenceNGCFCore::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M04 );
				parent::exc( HappyFenceNGIPBLCore::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M40 );
				parent::exc( HappyFenceNGDataSecurity::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M05 );
				parent::exc( HappyFenceNGPfilter::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M06 );
				parent::exc( HappyFenceNGGeoip::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M07 );
				parent::exc( HappyFenceNGIntegrity::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M08 );
				parent::exc( HappyFenceNGMlog::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M10 );
				parent::exc( HappyFenceNGMFA::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M11 );
				parent::exc( HappyFenceNGPrivacyCore::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M12 );
				parent::exc( HappyFenceNGResh::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M13 );
				parent::exc( HappyFenceNGAggregate::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M14 );
				parent::exc( HappyFenceNGSuspiciousQueryMenu::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M15 );
				parent::exc( HappyFenceNGUGuard::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M16 );

		if ( ! parent::exc( HappyFenceNGMCore::class, array( HappyFenceNGInoq::virtual() ), HappyFenceNGSym::M99 ) ) {
			self::raiseException( 'FATAL::MCONTROL->not working, restart plugin!' );
		}
	}
}
