<?php

declare(strict_types=1);

namespace KupShop\GraphQLBundle\ApiAdmin\Types\Changes\Product;

use KupShop\GraphQLBundle\ApiAdmin\Types\Changes\ChangeInterface;
use KupShop\GraphQLBundle\ApiAdmin\Types\Changes\ChangeMetadata;
use TheCodingMachine\GraphQLite\Annotations\Field;
use TheCodingMachine\GraphQLite\Annotations\Type;

#[Type]
class ProductQuantityChange implements ChangeInterface
{
    public function __construct(
        public ChangeMetadata $metadata,
        #[Field(description: 'ID produktu.')]
        public int $productId,
        #[Field(description: 'ID varianty.')]
        public ?int $variationId,
        #[Field(description: 'ID skladu. Hodnota `null` může nastat v případě, že e-shop nemá modul skladů.')]
        public ?int $storeId,
        #[Field(description: 'Počet kusů skladem.')]
        public int $quantity,
        #[Field(description: 'Počet kusů skladem před změnou.')]
        public ?int $quantityPrevious,
    ) {
    }

    public function getMetadata(): ChangeMetadata
    {
        return $this->metadata;
    }
}
