// seed-articles-page9.js — حروف الفاء، القاف، الكاف، اللام (من صفحة فهرس PDF رقم 9)

import db from '../db.js';

const volumeId = parseInt(process.argv[2] || '1', 10);

const NEW_AUTHORS = [
  { display_name: 'فضيلة الأستاذ الشيخ محمد سليمان السرتي', role_title: 'كاتب' },
  { display_name: 'حضرة الأستاذ الشيخ حسن القاياتي', role_title: 'كاتب' },
];

function normalize(s) {
  return s.replace(/[إأآا]/g, 'ا').replace(/ى/g, 'ي').replace(/ة/g, 'ه').replace(/\s+/g, ' ').trim();
}

function upsertAuthor({ display_name, role_title }) {
  const existing = db.prepare(`SELECT id FROM authors WHERE display_name = ?`).get(display_name);
  if (existing) return existing.id;
  const result = db.prepare(`
    INSERT INTO authors (display_name, normalized_name, role_title) VALUES (?, ?, ?)
  `).run(display_name, normalize(display_name), role_title);
  return Number(result.lastInsertRowid);
}

for (const a of NEW_AUTHORS) upsertAuthor(a);

function getAuthorId(name) {
  if (!name) return null;
  const row = db.prepare(`SELECT id FROM authors WHERE display_name = ?`).get(name);
  return row ? row.id : null;
}

// "صادق عرجون" المذكور هنا هو نفسه "صادق إبراهيم عرجون" المُدخَل سابقًا
function getAuthorIdFuzzy(partial) {
  const row = db.prepare(`SELECT id FROM authors WHERE display_name LIKE ?`).get(`%${partial}%`);
  return row ? row.id : null;
}

const articlesData = [
  // حرف الفاء
  ['الفرق بين المؤمن وغيره', 'فضيلة الأستاذ الشيخ يوسف الدجوى', 332, null, 'ف', 1],
  ['فضيلة الصبر', 'فضيلة الأستاذ الشيخ إبراهيم الجبالي', 658, null, 'ف', 2],
  ['فقيد الاسلام والشرق مولانا محمد على', null, 639, null, 'ف', 3],

  // حرف القاف
  ['القسر والحرية فى التربية', 'قلم الترجمة', 456, null, 'ق', 1],
  ['قضية البربر بالمغرب الأقصى', 'فضيلة الأستاذ رئيس التحرير', 442, null, 'ق', 2],

  // حرف الكاف
  ['كبر الهمة فى العلم', 'فضيلة الأستاذ رئيس التحرير', 563, null, 'ك', 1],
  ['كتاب يلحد فى آيات الله', null, 598, null, 'ك', 2],
  ['كتاب الدين الاسلامى', null, 719, null, 'ك', 3],
  ['كتاب المبسوط', null, 790, null, 'ك', 4],
  ['كرامات الأولياء', 'فضيلة الأستاذ الشيخ يوسف الدجوى', 764, null, 'ك', 5],
  ['كلمة فى أغراض المجلة', 'صاحب العزة الأستاذ مدير المجلة', 60, null, 'ك', 6],
  ['كلمة تثير محبة الله فى القلوب المستعدة', 'فضيلة الأستاذ الشيخ يوسف الدجوى', 434, null, 'ك', 7],
  ['كلمة موجزة', 'فضيلة الأستاذ الشيخ محمد سليمان السرتي', 607, null, 'ك', 8],
  ['كيف يميز اللؤلؤ الطبيعى من الصناعى', null, 74, null, 'ك', 9], // الأستاذ محمد الحسيني رضا أفندي

  // حرف اللام
  ['للأدب والتاريخ', 'حضرة الأستاذ الشيخ حسن القاياتي', 203, null, 'ل', 1],
  ['اللاسلكى وكيف يصل الى الاسماع', 'قلم الترجمة', 465, null, 'ل', 2],
  ['لمحة من التاريخ', null, 791, null, 'ل', 3], // صادق عرجون
  ['ليست مستشفيات ولا مدارس ولكنها معاهد تبشير', null, 211, null, 'ل', 4], // الأستاذ علي الجندي
];

const insertArticle = db.prepare(`
  INSERT INTO articles (volume_id, title, author_id, start_page, end_page, toc_letter, toc_order)
  VALUES (?, ?, ?, ?, ?, ?, ?)
`);

const ids = {};
let count = 0;
for (const [title, authorName, startPage, endPage, letter, order] of articlesData) {
  const authorId = getAuthorId(authorName);
  const result = insertArticle.run(volumeId, title, authorId, startPage, endPage, letter, order);
  ids[title] = Number(result.lastInsertRowid);
  count++;
}

// ربط المؤلفين الموجودين مسبقا بصيغ مختلفة قليلا (مطابقة جزئية موثقة)
const links = [
  ['كيف يميز اللؤلؤ الطبيعى من الصناعى', 'محمد الحسيني رضا'],
  ['لمحة من التاريخ', 'عرجون'],
  ['ليست مستشفيات ولا مدارس ولكنها معاهد تبشير', 'علي الجندي'],
];
for (const [title, fuzzyName] of links) {
  const aid = getAuthorIdFuzzy(fuzzyName);
  if (aid) db.prepare(`UPDATE articles SET author_id = ? WHERE id = ?`).run(aid, ids[title]);
}

console.log(`✅ تم إدخال ${count} مقالًا (حروف ف، ق، ك، ل) للمجلد رقم ${volumeId}`);
