Newer
Older
gn-synapse-client-php / src / DTO / BatchResult.php
@Eugene Sukhodolskiy Eugene Sukhodolskiy 1 day ago 913 bytes Initial client library skeleton (v0.1.0)
<?php

declare(strict_types=1);

namespace GNexus\Synapse\DTO;

/** Ответ batch-эндпоинта; позиции elements — порядок исходных событий. */
final readonly class BatchResult
{
    /**
     * @param list<SentEvent|BatchRejection> $results
     */
    public function __construct(
        public array $results,
    ) {}

    /** @return list<SentEvent> */
    public function accepted(): array
    {
        return array_values(array_filter(
            $this->results,
            static fn ($r) => $r instanceof SentEvent,
        ));
    }

    /** @return list<BatchRejection> */
    public function rejected(): array
    {
        return array_values(array_filter(
            $this->results,
            static fn ($r) => $r instanceof BatchRejection,
        ));
    }

    public function allAccepted(): bool
    {
        return $this->rejected() === [];
    }
}