$row */ public static function fromArray(array $row): self { return new self( userId: (int) $row['user_id'], displayName: (string) ($row['display_name'] ?? ''), role: (string) ($row['role'] ?? 'viewer'), email: isset($row['email']) ? (string) $row['email'] : null, source: (string) ($row['source'] ?? self::SOURCE_OIDC), ); } /** * @return array */ public function toArray(): array { return [ 'user_id' => $this->userId, 'display_name' => $this->displayName, 'role' => $this->role, 'email' => $this->email, 'source' => $this->source, ]; } }