query( << $id, ] ); } public static function fetchAll(): array {} public static function fetchWithPassword(string $id, string $password): ?self { $row = Database::getInstance()->query("select * from users where id=:id and password=:password", [ "id" => $id, "password" => $password, ])->fetch(); if (empty($row)) { return null; } return self::fromDatabase($row); } public static function fetchWithAccessToken(string $accessToken): ?static { $row = Database::getInstance()->query(<< $accessToken, ])->fetch(); if (empty($row)) { return null; } return self::fromDatabase($row); } public static function new(string $id): self { return new self($id); } public function insert(): bool { return !! Database::getInstance()->query( << $this->id, ] ); } public function update(): bool {} public function delete(): bool {} public function getId(): string { return $this->id; } public function fetchDevice(string $id): ?Device { return Device::fetch($id, $this->id); } /** * @return Device[] */ public function fetchDevices(): array { return Device::fetchAll($this->id); } }