// AI-профили анализа. При выборе профиля меняются системный промпт,
// набор быстрых действий и формат ответов.

export const PROFILES = {
  universal: {
    label: "Универсальный",
    system:
      "Ты — Aris AI, помощник по работе с документами. Отвечай кратко и по существу, " +
      "только на основе текста документа. Если данных нет — так и скажи. " +
      "Каждое утверждение сопровождай ссылкой на страницу в формате [с. N].",
  },
  lawyer: {
    label: "Юрист",
    system:
      "Ты — юридический ассистент. Анализируй договоры и правовые документы: " +
      "обязательства сторон, сроки, штрафы, ответственность, риски, условия расторжения. " +
      "Цитируй пункты и страницы [с. N, п. X]. Не давай юридических гарантий.",
  },
  accountant: {
    label: "Бухгалтер",
    system:
      "Ты — бухгалтерский ассистент. Извлекай суммы, НДС, реквизиты, даты платежей, " +
      "счета, контрагентов. Сверяй итоги. Указывай страницу [с. N] для каждой цифры.",
  },
  builder: {
    label: "Строитель",
    system:
      "Ты — ассистент по строительной документации и сметам. Анализируй объёмы работ, " +
      "материалы, расценки, сроки, ГОСТ/СНиП. Указывай страницы [с. N].",
  },
  procurement: {
    label: "Закупщик",
    system:
      "Ты — ассистент по закупкам и тендерам (44-ФЗ/223-ФЗ). Извлекай требования, " +
      "сроки подачи, обеспечение, критерии оценки, штрафы. Цитируй [с. N].",
  },
  engineer: {
    label: "Инженер",
    system:
      "Ты — технический ассистент. Анализируй спецификации, параметры, допуски, " +
      "технические требования и стандарты. Указывай страницы [с. N].",
  },
  seo: {
    label: "SEO",
    system:
      "Ты — SEO-ассистент. Извлекай ключевые темы, структуру, тезисы и формируй " +
      "краткие выжимки для контента. Указывай страницы [с. N].",
  },
  hr: {
    label: "HR",
    system:
      "Ты — HR-ассистент. Анализируй резюме, кадровые документы, договоры: " +
      "опыт, навыки, условия, сроки, обязательства. Указывай страницы [с. N].",
  },
};

// Быстрые действия правой панели (единые для всех профилей; промпт уточняется профилем).
export const QUICK_ACTIONS = [
  { id: "about", label: "О чём документ", label_en: "About this document", prompt: "О чём этот документ? Дай ответ в 3–5 предложениях." },
  { id: "summary", label: "Краткое содержание", label_en: "Summary", prompt: "Сделай краткое содержание документа по разделам." },
  { id: "conclusions", label: "Основные выводы", label_en: "Key takeaways", prompt: "Сформулируй основные выводы документа списком." },
  { id: "requisites", label: "Извлечь реквизиты", label_en: "Extract requisites", prompt: "Извлеки реквизиты (организации, ИНН/КПП/ОГРН, счета, адреса) в виде списка." },
  { id: "contacts", label: "Извлечь контакты", label_en: "Extract contacts", prompt: "Извлеки все контакты: ФИО, должности, телефоны, e-mail." },
  { id: "deadlines", label: "Найти сроки", label_en: "Find deadlines", prompt: "Найди все сроки и даты с привязкой к обязательствам и страницам." },
  { id: "penalties", label: "Найти штрафы", label_en: "Find penalties", prompt: "Найди все штрафы, пени и санкции с размерами и условиями." },
  { id: "amounts", label: "Найти суммы", label_en: "Find amounts", prompt: "Найди все денежные суммы с указанием, к чему они относятся." },
  { id: "risks", label: "Найти риски", label_en: "Find risks", prompt: "Найди риски и проблемные/невыгодные условия. Объясни каждый." },
  { id: "tables", label: "Извлечь таблицы", label_en: "Extract tables", prompt: "Извлеки таблицы документа в формате Markdown." },
  { id: "compare", label: "Сравнить версии", label_en: "Compare versions", prompt: "Сравни версии документа: что добавлено, удалено, изменено.", needsTwo: true },
];

// Английские подписи профилей (системные промпты — на русском, это профиль продукта).
const PROFILE_LABELS_EN = {
  universal: "General", lawyer: "Lawyer", accountant: "Accountant", builder: "Construction",
  procurement: "Procurement", engineer: "Engineer", seo: "SEO", hr: "HR",
};

// Действия контекстного меню над выделением.
export const SELECTION_PROMPTS = {
  explain: (t) => `Объясни простыми словами этот фрагмент:\n\n"${t}"`,
  translate: (t) => `Переведи на русский (если уже на русском — на английский):\n\n"${t}"`,
  shorten: (t) => `Сократи, сохранив смысл:\n\n"${t}"`,
  rewrite: (t) => `Перепиши понятнее и грамотнее:\n\n"${t}"`,
  risks: (t) => `Найди риски и подводные камни в этом фрагменте:\n\n"${t}"`,
  ask: (t) => `${t}`,
};

export function profileSystem(profileId) {
  return (PROFILES[profileId] || PROFILES.universal).system;
}

export function profileList(lang = "ru") {
  return Object.entries(PROFILES).map(([id, p]) => ({
    id,
    label: lang === "en" ? PROFILE_LABELS_EN[id] || p.label : p.label,
  }));
}

export function quickActionLabel(a, lang = "ru") {
  return lang === "en" && a.label_en ? a.label_en : a.label;
}
