// Copyright (c) 2026 PaddlePaddle Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

import { PaddleOCRClient, Model } from "@paddleocr/api-sdk";

async function main() {
  const client = new PaddleOCRClient();

  // Convenience: doc parsing with local file
  const result = await client.parseDocument({
    model: Model.PPStructureV3,
    filePath: "./sample.pdf",
    options: { useChartRecognition: true },
  });

  for (const page of result.pages) {
    console.log(page.markdownText);
  }

  // Manual control: submit + concurrent wait
  const job1 = await client.submitOcr({ fileUrl: "https://example.com/f1.pdf" });
  const job2 = await client.submitDocumentParsing({
    model: Model.PPStructureV3,
    filePath: "./sample.pdf",
  });

  const [r1, r2] = await Promise.all([
    client.waitOcrResult(job1.jobId),
    client.waitDocumentParsingResult(job2.jobId),
  ]);

  console.log("Job1 done:", r1);
  console.log("Job2 done:", r2);
}

main().catch(console.error);
