<?php
if ( ! class_exists( 'BW_Survey' ) ) {
	class BW_Survey {
		protected $plugin_name;
		protected $version;

		public function __construct () {

			require_once plugin_dir_path( BW_SURVEY_PLUGIN_FILE ) . 'includes/options.php';

			$this->plugin_name = defined( 'BW_SURVEY_PLUGIN_NAME' ) ? BW_SURVEY_PLUGIN_NAME : 'Bowden Works Survey Plugin';
			$this->version = defined( 'BW_SURVEY_PLUGIN_VERSION' ) ? BW_SURVEY_PLUGIN_VERSION : '1.0.0';


			require_once plugin_dir_path( BW_SURVEY_PLUGIN_FILE ) . 'includes/class-survey-post-type.php';
			new Survey_Post_Type();

			require_once plugin_dir_path( BW_SURVEY_PLUGIN_FILE ) . 'includes/class-entry-processing.php';
			new Entry_Processing();

			require_once plugin_dir_path( BW_SURVEY_PLUGIN_FILE ) . 'includes/class-plugin-settings.php';

			require_once plugin_dir_path( BW_SURVEY_PLUGIN_FILE ) . 'includes/class-admin-pages.php';

			require_once plugin_dir_path( BW_SURVEY_PLUGIN_FILE ) . 'includes/class-entries-csv.php';
			new Entries_CSV();

			
			add_action( 'init', array( $this, 'register_assets' ) );
			add_action( 'admin_init', array( $this, 'admin' ) );
			add_action( 'rest_api_init', array( $this, 'rest_api' ) );
		}

		public function admin () {
			require_once plugin_dir_path( BW_SURVEY_PLUGIN_FILE ) . 'includes/database/class-database.php';

			new Database();
		}

		public function rest_api () {
			require_once plugin_dir_path( BW_SURVEY_PLUGIN_FILE ) . 'includes/database/class-database.php';
			require_once plugin_dir_path( BW_SURVEY_PLUGIN_FILE ) . 'includes/api/class-api.php';

			new Database();
			new API();
		}

		public function register_assets () {
			require_once plugin_dir_path( BW_SURVEY_PLUGIN_FILE ) . 'includes/class-assets.php';
			new Assets();
		}
	}
}
