const fs = require("fs");
const path = require("path");

/**
 * Функция для записи логов.
 * @param {Object} ctx - Контекст Telegraf (содержит данные о пользователе и сообщении).
 * @param {String} action - Описание действия, например, "Начало битвы", "Использована граната".
 * @param {Object} [extraData] - Дополнительные данные для логов.
 */
function logAction(ctx, action, extraData = {}) {
  const logEntry = {
    timestamp: new Date().toISOString(),
    user: {
      id: ctx.from.id,
      username: ctx.from.username || "unknown",
      first_name: ctx.from.first_name || "unknown",
      last_name: ctx.from.last_name || "",
    },
    chat: ctx.chat ? { id: ctx.chat.id, type: ctx.chat.type } : null,
    action,
    extraData,
  };

  const logString = JSON.stringify(logEntry, null, 2);

  // Сохраняем лог в файл
  fs.appendFile('./json/logs.json', logString + "\n", (err) => {
    if (err) {
      console.error("Ошибка при записи лога:", err);
    }
  });
}

module.exports = logAction;
