*/ final class IndexResponse implements ApiResponse { private $totalCount; private $items; public static function create(array $data): self { $items = []; if (isset($data['items'])) { foreach ($data['items'] as $item) { $items[] = Route::create($item); } } $model = new self(); $model->items = $items; $model->totalCount = (int) ($data['total_count'] ?? count($items)); return $model; } private function __construct() { } public function getTotalCount(): int { return $this->totalCount; } /** * @return Route[] */ public function getRoutes(): array { return $this->items; } }