<?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() === [];
}
}