Laravel AT Protocol Client (alpha & unstable)
at main 39 lines 1.1 kB view raw
1<?php 2 3namespace SocialDept\AtpClient\Data\Responses\Atproto\Repo; 4 5use Illuminate\Contracts\Support\Arrayable; 6use SocialDept\AtpSchema\Generated\Com\Atproto\Repo\Defs\CommitMeta; 7 8/** 9 * @implements Arrayable<string, mixed> 10 */ 11class CreateRecordResponse implements Arrayable 12{ 13 public function __construct( 14 public readonly string $uri, 15 public readonly string $cid, 16 public readonly ?CommitMeta $commit = null, 17 public readonly ?string $validationStatus = null, 18 ) {} 19 20 public static function fromArray(array $data): self 21 { 22 return new self( 23 uri: $data['uri'], 24 cid: $data['cid'], 25 commit: isset($data['commit']) ? CommitMeta::fromArray($data['commit']) : null, 26 validationStatus: $data['validationStatus'] ?? null, 27 ); 28 } 29 30 public function toArray(): array 31 { 32 return [ 33 'uri' => $this->uri, 34 'cid' => $this->cid, 35 'commit' => $this->commit?->toArray(), 36 'validationStatus' => $this->validationStatus, 37 ]; 38 } 39}