Parse and validate AT Protocol Lexicons with DTO generation for Laravel
at main 89 lines 3.0 kB view raw
1<?php 2 3namespace SocialDept\AtpSchema\Generated\Com\Atproto\Admin\Defs; 4 5use Carbon\Carbon; 6use SocialDept\AtpSchema\Data\Data; 7use SocialDept\AtpSchema\Generated\Com\Atproto\Server\Defs\InviteCode; 8 9/** 10 * GENERATED CODE - DO NOT EDIT 11 * 12 * Lexicon: com.atproto.admin.defs.accountView 13 * Type: object 14 * 15 * @property string $did 16 * @property string $handle 17 * @property string|null $email 18 * @property array|null $relatedRecords 19 * @property Carbon $indexedAt 20 * @property InviteCode|null $invitedBy 21 * @property array<InviteCode>|null $invites 22 * @property bool|null $invitesDisabled 23 * @property Carbon|null $emailConfirmedAt 24 * @property string|null $inviteNote 25 * @property Carbon|null $deactivatedAt 26 * @property array|null $threatSignatures 27 * 28 * Constraints: 29 * - Required: did, handle, indexedAt 30 * - did: Format: did 31 * - handle: Format: handle 32 * - indexedAt: Format: datetime 33 * - emailConfirmedAt: Format: datetime 34 * - deactivatedAt: Format: datetime 35 */ 36class AccountView extends Data 37{ 38 public function __construct( 39 public readonly string $did, 40 public readonly string $handle, 41 public readonly Carbon $indexedAt, 42 public readonly ?string $email = null, 43 public readonly ?array $relatedRecords = null, 44 public readonly ?InviteCode $invitedBy = null, 45 public readonly ?array $invites = null, 46 public readonly ?bool $invitesDisabled = null, 47 public readonly ?Carbon $emailConfirmedAt = null, 48 public readonly ?string $inviteNote = null, 49 public readonly ?Carbon $deactivatedAt = null, 50 public readonly ?array $threatSignatures = null 51 ) { 52 } 53 54 /** 55 * Get the lexicon NSID for this data type. 56 * 57 * @return string 58 */ 59 public static function getLexicon(): string 60 { 61 return 'com.atproto.admin.defs.accountView'; 62 } 63 64 65 /** 66 * Create an instance from an array. 67 * 68 * @param array $data The data array 69 * @return static 70 */ 71 public static function fromArray(array $data): static 72 { 73 return new static( 74 did: $data['did'], 75 handle: $data['handle'], 76 indexedAt: Carbon::parse($data['indexedAt']), 77 email: $data['email'] ?? null, 78 relatedRecords: $data['relatedRecords'] ?? null, 79 invitedBy: isset($data['invitedBy']) ? InviteCode::fromArray($data['invitedBy']) : null, 80 invites: isset($data['invites']) ? array_map(fn ($item) => InviteCode::fromArray($item), $data['invites']) : [], 81 invitesDisabled: $data['invitesDisabled'] ?? null, 82 emailConfirmedAt: isset($data['emailConfirmedAt']) ? Carbon::parse($data['emailConfirmedAt']) : null, 83 inviteNote: $data['inviteNote'] ?? null, 84 deactivatedAt: isset($data['deactivatedAt']) ? Carbon::parse($data['deactivatedAt']) : null, 85 threatSignatures: $data['threatSignatures'] ?? [] 86 ); 87 } 88 89}