import PocketBase from "pocketbase";
const pb = new PocketBase("http://localhost:8090");
await pb.collection("_superusers").authWithPassword('tad17@list.ru', '0987654321');

async function appendItem(table_name, item) {
  //console.log("item:", item)

  try {
    const p = await pb.collection(table_name).create(item)
    //console.log("ответ PocketBase:", p)
    //console.log("запись:", p.id, p.patientName);
  } catch (err) {
    console.error('Ошибка:', err.message);
    process.exit(1); 
  }
}

async function importJSON(json_name, table_name) {
  const items = await Bun.file(json_name).json();
  console.log(`Прочитано: ${items.length} записей`)

  let appended = 0
  for (const item of items) {
    await appendItem(table_name, item)
    appended++
  }
  console.log(`Загружено: ${appended} записей`)
}
async function clearCollection(name) {
  let totalDeleted = 0;
  let batch = 50; // размер пачки
  let page = 1;

  while (true) {
    // получаем страницу записей
    const records = await pb.collection(name).getList(page, batch, { fields: "id" });

    if (records.items.length === 0) break;

    for (const rec of records.items) {
      await pb.collection(name).delete(rec.id);
      totalDeleted++;
      //process.stdout.write(`\rУдалено: ${totalDeleted}`);
    }

    // после удаления текущей страницы снова начинаем с 1,
    // потому что нумерация сдвигается
    page = 1;
  }

  console.log(`\nКоллекция "${name}" очищена. Всего удалено: ${totalDeleted}`);
}


async function test() {
  const resultList = await pb.collection('rmias').getList(1, 50, {
    filter: 'patientName ~ "К"',
});
	console.log(resultList)
	const record = await pb.collection('rmias').getOne('sp3ircowx2ckg63');
	console.log(record)
}




//test()
//await clearCollection("rmias");
await importJSON("excel/ДВН2.json", "dvn2")
console.log("Готово")