<?php
/**
 * Plugin Name:       BW Dev
 * Plugin URI:        https://plugins.bowden.works/bw-dev/
 * Description:       Bowden Works dev toolkit — admin columns, favicon, sticky elements, post-link blocks, YouTube embed, menu visibility, SVG uploads, admin notes, and Flywheel auto-update support in one actively-maintained plugin. Required for several site features. See Settings → BW Dev → About.
 * Version:           0.1.0
 * Requires at least: 6.0
 * Requires PHP:      7.4
 * Author:            Bowden Works
 * Author URI:        https://bowdenworks.com
 * License:           GPL-2.0-or-later
 * License URI:       https://www.gnu.org/licenses/gpl-2.0.html
 * Text Domain:       bw-dev
 * Domain Path:       /languages
 * Update URI:        https://plugins.bowden.works/bw-dev/
 */

defined( 'ABSPATH' ) || exit;

define( 'BW_DEV_VERSION', '0.1.0' );
define( 'BW_DEV_FILE', __FILE__ );
define( 'BW_DEV_DIR', plugin_dir_path( __FILE__ ) );
define( 'BW_DEV_URL', plugin_dir_url( __FILE__ ) );

require_once BW_DEV_DIR . 'vendor/plugin-update-checker/plugin-update-checker.php';

use YahnisElsts\PluginUpdateChecker\v5\PucFactory;

$updateChecker = PucFactory::buildUpdateChecker(
	'https://plugins.bowden.works/wp-json/bw/v1/update-check?slug=bw-dev',
	__FILE__,
	'bw-dev'
);

require_once BW_DEV_DIR . 'includes/interface-bw-dev-module.php';
require_once BW_DEV_DIR . 'includes/class-bw-dev-settings.php';
require_once BW_DEV_DIR . 'includes/class-bw-dev-brand.php';
require_once BW_DEV_DIR . 'includes/class-bw-dev-admin-page.php';
require_once BW_DEV_DIR . 'includes/class-bw-dev-migration.php';

register_activation_hook( __FILE__, array( 'BW_Dev_Migration', 'on_activation' ) );
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-favicon.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-sticky.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-youtube.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-post-link.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-admin-columns.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-svg-upload.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-admin-note.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-flywheel-auto-updates.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-menu-visibility.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-hide-login.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-security-hardening.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-login-log.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-subtitle.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-separator.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-robots-txt.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-llms-txt.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-title-override.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-established-year.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-vendors.php';
require_once BW_DEV_DIR . 'includes/modules/class-bw-dev-module-theme.php';
require_once BW_DEV_DIR . 'includes/class-bw-dev-plugin.php';

add_action(
	'plugins_loaded',
	static function () {
		BW_Dev_Plugin::instance()->boot();
	}
);
