<?php
/**
 * Wemeet Admin Orchestrator
 *
 * This class serves as the main admin coordinator, initializing all admin-related components.
 * It follows the orchestrator pattern - delegating responsibilities to specialized classes.
 *
 * @package SOVLIX\WEMEET
 */

namespace SOVLIX\WEMEET;

// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

if ( ! class_exists( 'Wemeet_Admin' ) ) {
	/**
	 * Wemeet_Admin Class
	 *
	 * Main admin orchestrator that initializes and coordinates all admin components.
	 *
	 * @since 1.0.0
	 */
	class Wemeet_Admin {

		/**
		 * Wemeet_Admin constructor.
		 *
		 * Initializes all admin components.
		 */
		public function __construct() {
			$this->init_components();
		}

		/**
		 * Initialize all admin components.
		 *
		 * @return void
		 */
		private function init_components() {
			// Initialize admin menu.
			new Admin\Wemeet_Menu();

			// Initialize OAuth handler.
			new Admin\Wemeet_OAuth_Handler();

			// Initialize configuration manager.
			new Admin\Wemeet_Config_Manager();

			// Initialize admin notices.
			new Admin\Wemeet_Admin_Notices();
		}
	}
}
