<?php
/**
 * Plugin Name:       BW Map Magnet
 * Plugin URI:        https://plugins.bowden.works/bw-map-magnet/
 * Description:       Showcase locations on a map with hover-to-zoom interaction for activities, restaurants, attractions and more.
 * Version:           1.5.2
 * 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-map-magnet
 * Domain Path:       /languages
 * Update URI:        https://plugins.bowden.works/bw-map-magnet/
 */

defined( 'ABSPATH' ) || exit;

define( 'BW_MAP_MAGNET_VERSION', '1.5.2' );
define( 'BW_MAP_MAGNET_FILE', __FILE__ );
define( 'BW_MAP_MAGNET_DIR', plugin_dir_path( __FILE__ ) );
define( 'BW_MAP_MAGNET_URL', plugin_dir_url( __FILE__ ) );
define( 'BW_MAP_MAGNET_SLUG', 'bw-map-magnet' );
define( 'BW_MAP_MAGNET_CPT', 'bw_map_item' );
define( 'BW_MAP_MAGNET_TAX', 'bw_map_category' );

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

use YahnisElsts\PluginUpdateChecker\v5\PucFactory;

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

require_once BW_MAP_MAGNET_DIR . 'includes/class-bw-map-magnet-icons.php';
require_once BW_MAP_MAGNET_DIR . 'includes/class-bw-map-magnet-settings.php';
require_once BW_MAP_MAGNET_DIR . 'includes/class-bw-map-magnet-cpt.php';
require_once BW_MAP_MAGNET_DIR . 'includes/class-bw-map-magnet-admin.php';
require_once BW_MAP_MAGNET_DIR . 'includes/class-bw-map-magnet-shortcode.php';
require_once BW_MAP_MAGNET_DIR . 'includes/class-bw-map-magnet-block.php';
require_once BW_MAP_MAGNET_DIR . 'includes/class-bw-map-magnet-import-export.php';
require_once BW_MAP_MAGNET_DIR . 'includes/class-bw-map-magnet-seeder.php';

function bw_map_magnet_init() {
	load_plugin_textdomain( 'bw-map-magnet', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
	BW_Map_Magnet_CPT::instance()->boot();
	BW_Map_Magnet_Settings::instance()->boot();
	BW_Map_Magnet_Admin::instance()->boot();
	BW_Map_Magnet_Shortcode::instance()->boot();
	BW_Map_Magnet_Block::instance()->boot();
	BW_Map_Magnet_Import_Export::instance()->boot();
	BW_Map_Magnet_Seeder::instance()->boot();
}
add_action( 'plugins_loaded', 'bw_map_magnet_init' );

register_activation_hook( __FILE__, function () {
	require_once BW_MAP_MAGNET_DIR . 'includes/class-bw-map-magnet-cpt.php';
	BW_Map_Magnet_CPT::instance()->register();
	flush_rewrite_rules();
} );

register_deactivation_hook( __FILE__, function () {
	flush_rewrite_rules();
} );
