diff --git a/src/Services/InfoProviderSystem/DTOs/BulkSearchFieldMappingDTO.php b/src/Services/InfoProviderSystem/DTOs/BulkSearchFieldMappingDTO.php index 47d8ac69..50b7f4cf 100644 --- a/src/Services/InfoProviderSystem/DTOs/BulkSearchFieldMappingDTO.php +++ b/src/Services/InfoProviderSystem/DTOs/BulkSearchFieldMappingDTO.php @@ -22,41 +22,24 @@ declare(strict_types=1); namespace App\Services\InfoProviderSystem\DTOs; -use App\Services\InfoProviderSystem\Providers\InfoProviderInterface; - /** * Represents a mapping between a part field and the info providers that should search in that field. */ readonly class BulkSearchFieldMappingDTO { - /** @var string[] $providers Array of provider keys to search with (e.g., ['digikey', 'farnell']) */ - public array $providers; - /** * @param string $field The field to search in (e.g., 'mpn', 'name', or supplier-specific fields like 'digikey_spn') - * @param string[]|InfoProviderInterface[] $providers Array of provider keys to search with (e.g., ['digikey', 'farnell']) + * @param string[] $providers Array of provider keys to search with (e.g., ['digikey', 'farnell']) * @param int $priority Priority for this field mapping (1-10, lower numbers = higher priority) */ public function __construct( public string $field, - array $providers = [], + public array $providers, public int $priority = 1 ) { if ($priority < 1 || $priority > 10) { throw new \InvalidArgumentException('Priority must be between 1 and 10'); } - - //Ensure that providers are provided as keys - foreach ($providers as &$provider) { - if ($provider instanceof InfoProviderInterface) { - $provider = $provider->getProviderKey(); - } - if (!is_string($provider)) { - throw new \InvalidArgumentException('Providers must be provided as strings or InfoProviderInterface instances'); - } - } - unset($provider); - $this->providers = $providers; } /** diff --git a/src/Settings/MiscSettings/IpnSuggestSettings.php b/src/Settings/MiscSettings/IpnSuggestSettings.php index 2c2cb21a..16face21 100644 --- a/src/Settings/MiscSettings/IpnSuggestSettings.php +++ b/src/Settings/MiscSettings/IpnSuggestSettings.php @@ -35,7 +35,7 @@ use Symfony\Component\Translation\TranslatableMessage as TM; use Symfony\Component\Validator\Constraints as Assert; #[Settings(label: new TM("settings.misc.ipn_suggest"))] -#[SettingsIcon("fa-arrow-up-1-9")] +#[SettingsIcon("fa-list")] class IpnSuggestSettings { use SettingsTrait; @@ -91,14 +91,14 @@ class IpnSuggestSettings description: new TM("settings.misc.ipn_suggest.numberSeparator.help"), options: ['type' => StringType::class], )] - public string $numberSeparator = '-'; + public ?string $numberSeparator = '-'; #[SettingsParameter( label: new TM("settings.misc.ipn_suggest.categorySeparator"), description: new TM("settings.misc.ipn_suggest.categorySeparator.help"), options: ['type' => StringType::class], )] - public string $categorySeparator = '-'; + public ?string $categorySeparator = '-'; #[SettingsParameter( label: new TM("settings.misc.ipn_suggest.globalPrefix"), diff --git a/tests/Services/InfoProviderSystem/DTOs/BulkSearchFieldMappingDTOTest.php b/tests/Services/InfoProviderSystem/DTOs/BulkSearchFieldMappingDTOTest.php index e300e2bf..a2101938 100644 --- a/tests/Services/InfoProviderSystem/DTOs/BulkSearchFieldMappingDTOTest.php +++ b/tests/Services/InfoProviderSystem/DTOs/BulkSearchFieldMappingDTOTest.php @@ -26,15 +26,6 @@ use PHPUnit\Framework\TestCase; class BulkSearchFieldMappingDTOTest extends TestCase { - public function testProviderInstanceNormalization(): void - { - $mockProvider = $this->createMock(\App\Services\InfoProviderSystem\Providers\InfoProviderInterface::class); - $mockProvider->method('getProviderKey')->willReturn('mock_provider'); - - $fieldMapping = new BulkSearchFieldMappingDTO(field: 'mpn', providers: ['provider1', $mockProvider], priority: 5); - $this->assertSame(['provider1', 'mock_provider'], $fieldMapping->providers); - } - public function testIsSupplierPartNumberField(): void { $fieldMapping = new BulkSearchFieldMappingDTO(field: 'reichelt_spn', providers: ['provider1'], priority: 1); diff --git a/translations/messages.en.xlf b/translations/messages.en.xlf index d6092f03..5b7749e1 100644 --- a/translations/messages.en.xlf +++ b/translations/messages.en.xlf @@ -14484,53 +14484,5 @@ Please note that this system is currently experimental, and the synonyms defined The global IPN prefix, common across all parts - - - settings.misc.ipn_suggest.fallbackPrefix - Fallback prefix - - - - - settings.misc.ipn_suggest.fallbackPrefix.help - The IPN prefix that should be used, if a category has no prefix defined. - - - - - settings.misc.ipn_suggest.numberSeparator - Number separator - - - - - settings.misc.ipn_suggest.numberSeparator.help - The separator character used to separate the IPN number from the prefix. - - - - - settings.misc.ipn_suggest.categorySeparator - Category separator - - - - - settings.misc.ipn_suggest.categorySeparator.help - The separator character used to separate different levels of category prefixes. - - - - - settings.misc.ipn_suggest.globalPrefix - Global prefix - - - - - settings.misc.ipn_suggest.globalPrefix.help - If enabled, an option for to generate IPN with this global prefix, shared across parts in all categories. - -