<?php
/**
 * Auth Strategy Interface
 *
 * @category   WordPress_Plugin
 * @package    Common
 * @subpackage Interfaces
 * @author     miniOrange <info@miniorange.com>
 * @license    MIT/Expat
 * @link       https://plugins.miniorange.com/woocommerce-api-product-sync-with-woocommerce-rest-apis
 */

namespace MOWCPS\Common\Interfaces;

if ( ! defined( 'ABSPATH' ) ) {
	die;
}

use WP_Error;

/**
 * Interface Auth_Strategy_Interface
 *
 * Defines the contract for all authorization strategies
 */
interface Auth_Strategy_Interface {
	/**
	 * Generate authorization headers
	 *
	 * @param int   $supplier_id Supplier ID.
	 * @param array $settings Auth settings.
	 * @return array|WP_Error Headers array or error
	 */
	public function generate_headers( $settings, $supplier_id );

	/**
	 * Validate auth settings
	 *
	 * @param array $settings Auth settings.
	 * @return bool|WP_Error True if valid, WP_Error if invalid
	 */
	public function validate_settings( $settings );
}
