validUntil; } public static function create(User $user, int $days = 30): ApiKey { $apiKey = new ApiKey(); $apiKey->user = $user; $apiKey->token = generateRandomString(64); $apiKey->validUntil = (new \DateTime())->modify("+$days days"); $apiKey->active = true; return $apiKey; } public function refresh(SQL $sql, int $days): bool { $this->validUntil = (new \DateTime())->modify("+$days days"); return $this->save($sql, ["validUntil"]); } public function revoke(SQL $sql): bool { $this->active = false; return $this->save($sql, ["active"]); } }