<?php

namespace App\Modules\Inventory\Reservation\DTOs;

final readonly class ReserveInventoryInput
{
    /**
     * @param  array<string, mixed>|null  $metadata
     */
    public function __construct(
        public int $tenantId,
        public int $warehouseId,
        public int $itemId,
        public string $quantity,
        public ?string $reservationPublicId,
        public ?\DateTimeInterface $expiresAt,
        public ?int $actorUserId,
        public ?string $correlationId,
        public ?string $idempotencyKey,
        public string $idempotencySource = 'default',
        public ?string $sourceType = null,
        public ?int $sourceId = null,
        public ?array $metadata = null,
    ) {}
}
