<?php
/**
 * Plugin Name:       BW Guides Server
 * Plugin URI:        https://plugins.bowden.works/
 * Description:       Central publishing server for BW Guides. Author guides here, target them to client sites, and serve them over an authenticated REST API.
 * Version:           0.2.0
 * Requires at least: 6.0
 * Requires PHP:      7.4
 * Author:            Bowden Works
 * Author URI:        https://bowden.works
 * License:           GPL-2.0-or-later
 * License URI:       https://www.gnu.org/licenses/gpl-2.0.html
 * Text Domain:       bw-guides-server
 */

defined( 'ABSPATH' ) || exit;

define( 'BW_GUIDES_SERVER_VERSION', '0.2.0' );
define( 'BW_GUIDES_SERVER_FILE', __FILE__ );
define( 'BW_GUIDES_SERVER_DIR', plugin_dir_path( __FILE__ ) );
define( 'BW_GUIDES_SERVER_URL', plugin_dir_url( __FILE__ ) );
define( 'BW_GUIDES_SERVER_DB_VERSION', '2' );
define( 'BW_GUIDES_SERVER_SCHEMA_VERSION', 1 );

require_once BW_GUIDES_SERVER_DIR . 'includes/class-bw-guides-server-installer.php';
require_once BW_GUIDES_SERVER_DIR . 'includes/class-bw-guides-server-cpt.php';
require_once BW_GUIDES_SERVER_DIR . 'includes/class-bw-guides-server-sites.php';
require_once BW_GUIDES_SERVER_DIR . 'includes/class-bw-guides-server-rest.php';
require_once BW_GUIDES_SERVER_DIR . 'includes/class-bw-guides-server-admin.php';
require_once BW_GUIDES_SERVER_DIR . 'includes/class-bw-guides-server-patterns.php';

register_activation_hook( __FILE__, array( 'BW_Guides_Server_Installer', 'activate' ) );
register_deactivation_hook( __FILE__, array( 'BW_Guides_Server_Installer', 'deactivate' ) );

add_action( 'plugins_loaded', function () {
	BW_Guides_Server_Installer::maybe_upgrade();
	( new BW_Guides_Server_CPT() )->register();
	( new BW_Guides_Server_REST() )->register();
	( new BW_Guides_Server_Patterns() )->register();
	if ( is_admin() ) {
		( new BW_Guides_Server_Admin() )->register();
	}
} );
