<?php

if ( ! class_exists( 'ITSEC_Core_Setup' ) ) {

	class ITSEC_Core_Setup {

		public function __construct() {

			add_action( 'itsec_modules_do_plugin_activation',   array( $this, 'execute_activate'   )          );
			add_action( 'itsec_modules_do_plugin_deactivation', array( $this, 'execute_deactivate' )          );
			add_action( 'itsec_modules_do_plugin_uninstall',    array( $this, 'execute_uninstall'  )          );
			add_action( 'itsec_modules_do_plugin_upgrade',      array( $this, 'execute_upgrade'    ), null, 2 );

		}

		/**
		 * Execute module activation.
		 *
		 * @since 4.0
		 *
		 * @return void
		 */
		public function execute_activate() {}

		/**
		 * Execute module deactivation
		 *
		 * @return void
		 */
		public function execute_deactivate() {

			delete_site_option( 'itsec_free_just_activated' );

		}

		/**
		 * Execute module uninstall
		 *
		 * @return void
		 */
		public function execute_uninstall() {

			$this->execute_deactivate();

		}

		/**
		 * Execute module upgrade
		 *
		 * @return void
		 */
		public function execute_upgrade( $build ) {
			if ( $build < 4069 ) {
				delete_site_option( 'itsec_free_just_activated' );
			}

			if ( $build < 4076 ) {
				$digest = wp_next_scheduled( 'itsec_digest_email' );

				if ( $digest ) {
					wp_unschedule_event( $digest, 'itsec_digest_email' );
				}
			}
		}

	}

}

new ITSEC_Core_Setup();
