HEX
Server: Apache
System: Linux WWW 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64
User: web11 (1011)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/payments-gateway/vendor/doctrine/migrations/src/Metadata/MigrationPlanList.php
<?php

declare(strict_types=1);

namespace Doctrine\Migrations\Metadata;

use Countable;
use Doctrine\Migrations\Exception\NoMigrationsFoundWithCriteria;

use function count;
use function end;
use function reset;

/**
 * Represents a sorted list of MigrationPlan instances to execute.
 */
final class MigrationPlanList implements Countable
{
    /** @param MigrationPlan[] $items */
    public function __construct(
        private array $items,
        private readonly string $direction,
    ) {
    }

    public function count(): int
    {
        return count($this->items);
    }

    /** @return MigrationPlan[] */
    public function getItems(): array
    {
        return $this->items;
    }

    public function getDirection(): string
    {
        return $this->direction;
    }

    public function getFirst(): MigrationPlan
    {
        if (count($this->items) === 0) {
            throw NoMigrationsFoundWithCriteria::new('first');
        }

        return reset($this->items);
    }

    public function getLast(): MigrationPlan
    {
        if (count($this->items) === 0) {
            throw NoMigrationsFoundWithCriteria::new('last');
        }

        return end($this->items);
    }
}