Laravel AT Protocol Client (alpha & unstable)
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}