refactor(catalog): rely on inventory for variant availability

This commit is contained in:
2026-08-14 09:54:40 -03:00
parent 11dbcb4082
commit a919e9366b
4 changed files with 2 additions and 11 deletions

View File

@@ -11,13 +11,11 @@ class VariantSelectionService
{
/**
* @param array<string, mixed> $selectedValues
* @param list<int> $excludedVariantIds
* @return array<string, mixed>
*/
public function options(
CatalogItem $catalogItem,
array $selectedValues,
array $excludedVariantIds = [],
?int $includedVariantId = null,
): array {
$catalogItem->load([
@@ -30,10 +28,7 @@ class VariantSelectionService
'variants.definitions.itemAttribute.attribute.options',
]);
$excluded = collect($excludedVariantIds)->map(fn ($id): int => (int) $id);
$variants = $catalogItem->visibleVariants($includedVariantId)
->reject(fn (Variant $variant): bool => $variant->id !== $includedVariantId
&& $excluded->contains($variant->id))
->values();
$normalizedSelections = collect($selectedValues)
->mapWithKeys(fn ($value, string $key): array => [$key => $this->normalizeValue($value)])