import Typesense from "typesense";
import dayjs from "dayjs";
import { JSDOM } from "jsdom";

const { window } = new JSDOM();

let client = new Typesense.Client({
  nodes: [
    {
      host: "searchts.carpa.com",
      port: "443",
      protocol: "https",
    }
  ],
  apiKey: "3KrmYlcirARCxG4AZPV5bnJgQD0qtoW0",
});

import fs from 'fs';
import readline from 'readline';
import { create } from "domain";

async function processJsonLines(filePath) {
  const errors = [];
  const stream = fs.createReadStream(filePath);
  const rl = readline.createInterface({
    input: stream,
    crlfDelay: Infinity,
  });
  
  let lineCount = 0;
  
  for await (const line of rl) {
    lineCount = 0;
    try {
      // Parse the line as JSON
      const data = JSON.parse(line);

      //if( data.id != 62643 ) continue; // Skip until we find the specific ID

      console.log('Processing: ', data.title);

      const doc_id = await createDocument(data);

      console.log('Document created with ID:', doc_id);

    } catch (error) {
      //console.error(`Error processing line ${line}:`, error);
      let data = JSON.parse(line);
      errors.push({ line: data.id, error: error.message });
    }
    //break;
  }
  console.log(`Finished processing. Total lines: ${lineCount}. Errors: ${errors.length}`);
  if (errors.length > 0) {
    console.log('Errors:', errors);
  }
}

//processJsonLines('./input/activities_wp_ES.json');
processJsonLines('./input/conferences_wp_ES.json');

{
  "date": 1779210000,
  "files": [
    {
      "downloadname": "marcador_elsonador-cumpleJBP2026 copy.jpg",
      "filename": "b7b145db-b3ae-4ade-bc07-0fd675ae1195.jpg",
      "type": ""
    }
  ],
  "id": "1",
  "images": [
    {
      "downloadname": "photo_2026-05-19_17-41-20.jpg",
      "file": "995283e3-a798-48c9-9221-ae1edd4b2706.jpg"
    }
  ],
  "locale": "es",
  "number": 1,
  "slug": "marcador-el-sonador-cumpliendo-el-establecimiento-del-reino-judio",
  "subtype": "marcador",
  "thumbnail": "15f887a2-c18a-43d5-aa83-0313707aef22.png",
  "title": "Marcador: El Soñador cumpliendo el establecimiento del Reino Judío",
  "type": "material"
}

// Main function to create document in Typesense
async function createDocument(data){
  let document = {
    date: data.timestamp,
    files: data.files,
    id: data.id,
    images: data.images,
    locale: data.locale,
    number: data.number,
    slug: data.slug,
    subtype: data.subtype,
    thumbnail: data.thumbnail,
    title: data.title,
    type: data.type
  };

  let doc = await client.collections('print-materials').documents().upsert(document);

  return doc.id;
    
}