<?php
/**
 * Contract for stage 0 (learned alias) lookups.
 *
 * @package EmberPrice
 */

namespace EmberPrice\Matching;

/**
 * Kept separate from AliasStore so MatchPipeline stays unit-testable
 * without WordPress: production code reads from the real `embp_aliases`
 * table (see AliasStore), tests supply an in-memory fake.
 */
interface AliasLookupInterface {

	/**
	 * Exact lookup for stage 0: (supplier, normalized alias) -> learned match.
	 *
	 * @param int    $supplier_id      Supplier id.
	 * @param string $alias_normalized Already-normalized alias text.
	 *
	 * @return array{product_id: int, variation_id: ?int}|null
	 */
	public function find( int $supplier_id, string $alias_normalized ): ?array;
}
