<?php
/**
 * Product search-keywords extractor contract.
 *
 * @package Affilun\Application\Product
 */

declare(strict_types=1);

namespace Affilun\Application\Product;

use Affilun\Domain\Product\ProductSnapshot;

/**
 * Extracts cross-provider search keywords from a product snapshot.
 */
interface ProductSearchKeywordsExtractor {

	/**
	 * Extract normalized search keywords.
	 *
	 * @param ProductSnapshot $snapshot Product snapshot being saved.
	 */
	public function extract( ProductSnapshot $snapshot ): SearchKeywordsExtractionResult;
}
