Laravel AT Protocol Client (alpha & unstable)
at main 39 lines 1.1 kB view raw
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}