settings = new Aiva_Lite_Settings(); $this->api = new Aiva_Lite_Api($this->settings); $this->admin = new Aiva_Lite_Admin($this->settings, $this->api); $this->widget = new Aiva_Lite_Widget($this->settings); $this->shortcode = new Aiva_Lite_Shortcode($this->settings); $this->ajax = new Aiva_Lite_Ajax($this->settings, $this->api); } public function init(): void { add_action('plugins_loaded', array($this->settings, 'register')); add_action('init', array($this->shortcode, 'register')); add_action('admin_menu', array($this->admin, 'register_menu')); add_action('admin_init', array($this->admin, 'handle_actions')); add_action('admin_enqueue_scripts', array($this->admin, 'enqueue_assets')); add_action('wp_enqueue_scripts', array($this->widget, 'maybe_enqueue_widget')); add_action('wp_footer', array($this->widget, 'maybe_render_auto_embed'), 20); add_action('wp_ajax_aiva_lite_refresh_summary', array($this->ajax, 'refresh_summary')); add_action('wp_ajax_aiva_lite_test_connection', array($this->ajax, 'test_connection')); add_action('wp_ajax_aiva_lite_poll_pairing', array($this->ajax, 'poll_pairing')); } public static function activate(): void { $settings = new Aiva_Lite_Settings(); add_option(AIVA_LITE_OPTION_KEY, $settings->defaults(), '', false); } public static function deactivate(): void { delete_transient('aiva_lite_summary_cache'); delete_transient('aiva_lite_status_cache'); } }