<?php
declare(strict_types=1);

namespace PpPhp\Core\Platform\Event\Streaming\Broadcast;

final class StreamBroadcastSnapshot
{
    public function __construct(private readonly array $requests = [], private readonly array $results = [], private readonly array $statistics = [], private readonly string $createdAt = '') {}
    public static function fromArray(array $data): self { return new self((array) ($data['requests'] ?? []), (array) ($data['results'] ?? []), (array) ($data['statistics'] ?? []), (string) ($data['createdAt'] ?? '')); }
    public function requests(): array { return $this->requests; }
    public function results(): array { return $this->results; }
    public function statistics(): array { return $this->statistics; }
    public function toArray(): array { return ['requests' => $this->requests, 'results' => $this->results, 'statistics' => $this->statistics, 'createdAt' => $this->createdAt !== '' ? $this->createdAt : date('c')]; }
}
