Laravel AT Protocol Client (alpha & unstable)
1<?php
2
3namespace SocialDept\AtpClient\Data\Responses\Ozone\Moderation;
4
5use Illuminate\Contracts\Support\Arrayable;
6use Illuminate\Support\Collection;
7use SocialDept\AtpSchema\Generated\Tools\Ozone\Moderation\Defs\SubjectStatusView;
8
9/**
10 * @implements Arrayable<string, mixed>
11 */
12class QueryStatusesResponse implements Arrayable
13{
14 /**
15 * @param Collection<int, SubjectStatusView> $subjectStatuses
16 */
17 public function __construct(
18 public readonly Collection $subjectStatuses,
19 public readonly ?string $cursor = null,
20 ) {}
21
22 public static function fromArray(array $data): self
23 {
24 return new self(
25 subjectStatuses: collect($data['subjectStatuses'] ?? [])->map(
26 fn (array $status) => SubjectStatusView::fromArray($status)
27 ),
28 cursor: $data['cursor'] ?? null,
29 );
30 }
31
32 public function toArray(): array
33 {
34 return [
35 'subjectStatuses' => $this->subjectStatuses->map(fn (SubjectStatusView $s) => $s->toArray())->all(),
36 'cursor' => $this->cursor,
37 ];
38 }
39}