<?php
namespace WPSyncSheets_WPForms;

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


/**
 * Main WPSyncSheets_WPForms class.
 *
 * @since 1.0.0
 * @package wpsyncsheets-wpforms
 */
final class WPSyncSheets_WPForms
{
	/**
	 * Instance of this class.
	 *
	 * @since 1.0.0
	 *
	 * @var \WPSyncSheets_WPForms\WPSyncSheets_WPForms
	 */
	private static $instance;
	/**
	 * Plugin version for enqueueing, etc.
	 *
	 * @since 1.0.0
	 *
	 * @var string
	 */
	public $version = '';
	/**
	 * Main WPSyncSheets_WPForms Instance.
	 * Only one instance of WPSyncSheets_WPForms exists in memory at any one time.
	 * Also prevent the need to define globals all over the place.
	 *
	 * @since 1.0.0
	 *
	 * @return WPSyncSheets_WPForms
	 */
	public static function instance()
	{
		if (null === self::$instance || !self::$instance instanceof self) {
			self::$instance = new self();
			self::$instance->constants();
			self::$instance->includes();
		}
		return self::$instance;
	}
	/**
	 * Setup plugin constants.
	 * All the path/URL related constants are defined in main plugin file.
	 *
	 * @since 1.0.0
	 */
	private function constants()
	{
		$this->version = WPSSLWP_VERSION;
	}

	/**
	 * Include files.
	 *
	 * @since 1.0.0
	 */
	private function includes()
	{
		// Global Includes.
		require_once WPSSLWP_PATH . '/includes/class-wpsslwp-google-api.php';
		require_once WPSSLWP_PATH . '/includes/class-wpsslwp-google-api-functions.php';
		require_once WPSSLWP_PATH . '/includes/class-wpsslwp-plugin-settings.php';
		require_once WPSSLWP_PATH . '/includes/class-wpsslwp-service.php';
		require_once WPSSLWP_PATH . '/includes/class-wpsslwp-notification.php';
		require_once WPSSLWP_PATH . '/feedback/class-wpsslwp-usersfeedback.php';
	}

}