import PouchDB from "../PouchDB.js";

const qrDb = new PouchDB(`${process.env.API_URL}/qr`, { skip_setup: true });
const messagesDb = new PouchDB(`${process.env.API_URL}/messages`, {
  skip_setup: true,
});

const qrIndex = {
  ddoc: "_design/idx-qr-type-user_uuid",
  name: "idx-qr-type-user_uuid",
  type: "json",
  index: {
    fields: ["type", "user_uuid"],
  },
};

const messagesIndex = {
  ddoc: "_design/idx-messages-type-qr_code_uri-chat",
  name: "idx-messages-type-qr_code_uri-chat",
  type: "json",
  index: {
    fields: ["type", "qr_code_uri", "chat"],
  },
};

export const up = async () => {
  try {
    await qrDb.createIndex(qrIndex);
  } catch (error) {
    console.error("Ошибка при создании индекса для qrDb", qrIndex);
    throw error;
  }

  try {
    await messagesDb.createIndex(messagesIndex);
  } catch (error) {
    console.error("Ошибка при создании индекса для messagesDb", messagesIndex);
    throw error;
  }
};

export const down = async () => {
  try {
    await qrDb.deleteIndex(qrIndex);
  } catch (error) {
    console.error("Ошибка при удалении индекса для qrDb", qrIndex, error);
    // Возможно, индекс не существует, просто логируем
  }

  try {
    await messagesDb.deleteIndex(messagesIndex);
  } catch (error) {
    console.error(
      "Ошибка при удалении индекса для messagesDb",
      messagesIndex,
      error,
    );
    // Возможно, индекс не существует, просто логируем
  }
};
