<?php
/**
 * Idempotent variation creation request.
 *
 * @package ScheduledChanges
 */

namespace ScheduledChangesWooCommerce\CoreCompat\WooCommerce\Variations;

use ScheduledChanges\Domain\Shared\Uuid;

/**
 * Carries stable creation identity, attributes, and supported CRUD values.
 */
final class VariationRequest {
	private Uuid $operation_uuid;
	/**
	 * @var array<string, string>
	 */
	private array $attributes;
	/**
	 * @var array<string, mixed>
	 */
	private array $values = array();
	/**
	 * @param array<string,string> $attributes Variation attribute assignment.
	 * @param array<string,mixed>  $values Supported variation values.
	 */
	public function __construct( Uuid $operation_uuid, array $attributes, array $values = array() ) {
		$this->operation_uuid = $operation_uuid;
		$this->attributes     = $attributes;
		$this->values         = $values;
	}

	public function operationUuid(): Uuid {
		return $this->operation_uuid;
	}

	/**
	 * @return array<string,string>
	 */
	public function attributes(): array {
		return $this->attributes;
	}

	/**
	 * @return array<string,mixed>
	 */
	public function values(): array {
		return $this->values;
	}
}
