<?php
/** Assets
 *
 * @package Bw-Winners-Network
 */

namespace BwWinnersNetwork;

if ( ! class_exists( __NAMESPACE__ . '\Assets' ) ) {

	/**
	 * Register Assets
	 */
	class Assets {

		/**
		 * Adds hooks.
		 */
		public function __construct() {
			add_action( 'init', [ $this, 'register_assets' ] );

			require_once plugin_dir_path( \BwWinnersNetwork\PLUGIN_PATH ) . 'includes/blocks/class-winners-table.php';
			new Winners_Table();

			require_once plugin_dir_path( \BwWinnersNetwork\PLUGIN_PATH ) . 'includes/blocks/class-product-list.php';
			new Product_List();

			require_once plugin_dir_path( \BwWinnersNetwork\PLUGIN_PATH ) . 'includes/blocks/class-multisite-post-slider.php';
			new Multisite_Post_Slider();

		}

		/**
		 * Registers styles and scripts.
		 */
		public function register_assets() {
			
			// API Fetch. Similar to @wordpress/api-fetch but it accepts non-json data. Usefull with file uploads and formdata.

			$asset_file = plugin_dir_path( PLUGIN_PATH ) . 'build/api-fetch/apiFetch.asset.php';
			
			if ( ! file_exists( $asset_file ) ) {
				error_log( 'Plugin assets not built: ' . $asset_file );
				return;
			}

			$settings = include $asset_file;

			wp_register_script(
				'bw-winners-api-fetch',
				plugins_url( 'build/api-fetch/apiFetch.js', PLUGIN_PATH ),
				$settings['dependencies'],
				$settings['version'],
				false
			);

			wp_localize_script(
				'bw-winners-api-fetch',
				'bwWinnersPlugins',
				[
					'root'          => esc_url_raw( rest_url( API_NAMESPACE ) ),
					'nonce'         => wp_create_nonce( 'wp_rest' ),
					'nonceEndpoint' => admin_url( 'admin-ajax.php?action=rest-nonce' ),
				]
			);

			
			// Swiper

			wp_register_script(
				'swiper',
				plugins_url( 'assets/js/swiper-bundle.min.js', PLUGIN_PATH ),
				[],
				'11.0.5',
				[
					'in_footer' => true
				]
			);

			wp_register_style(
				'swiper',
				plugins_url( 'assets/css/swiper-bundle.min.css', PLUGIN_PATH ),
				[],
				'11.0.5',
			);
		}
	}
}
