// seed-articles-page5.js — تتمة حرف التاء + حرف الجيم (من صفحة فهرس PDF رقم 5)

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

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

const NEW_AUTHORS = [
  { display_name: 'فضيلة الأستاذ الشيخ محمود عرنوس', role_title: 'كاتب' },
  { 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;
}

// [العنوان، المؤلف أو null، صفحة البداية، صفحة النهاية، الحرف، الترتيب]
const articlesData = [
  // تتمة حرف التاء
  ['التجول وأثره فى التربية الوطنية', 'قلم الترجمة', 710, null, 'ت', 7],
  ['تحية وتقديم', 'فضيلة الأستاذ الشيخ محمود عرنوس', 275, null, 'ت', 8],
  ['تربية اللؤلؤ فى اليابان', 'قلم الترجمة', 331, null, 'ت', 9],
  ['التربية الصامتة', 'صاحب العزة الأستاذ مدير المجلة', 475, null, 'ت', 10],
  ['ترجمة الفصل العاشر من السيرة النبوية للسيدين أدنبية ومسالحان ابراهيم الجزارى', 'صاحب العزة الأستاذ مدير المجلة', 62, 147, 'ت', 11],
  ['التسمم بغاز الفحم', 'قلم الترجمة', 638, null, 'ت', 12],
  ['تصحيح', 'فضيلة الأستاذ الشيخ حسن منصور', 320, null, 'ت', 13],
  ['تعريف الاقتصاد السياسى', 'قلم الترجمة', 618, null, 'ت', 14],
  ['تفسير (ربنا عليك توكلنا واليك أنبنا)', 'فضيلة الأستاذ الشيخ حسن منصور', 7, null, 'ت', 15],
  ['تفسير قصة سيدنا شعيب عليه السلام', 'فضيلة الأستاذ الشيخ حسن منصور', 90, null, 'ت', 16], // مقال متسلسل - 9 حلقات (انظر التعليق أدناه)
  ['التفسير', 'فضيلة الأستاذ الشيخ يوسف الدجوى', 734, null, 'ت', 17],
  ['تفسير بعض الألفاظ العامية', 'قلم الترجمة', 469, null, 'ت', 18],
  ['التفقه فى الدين وأثره فى المسلمين', 'فضيلة الأستاذ الشيخ حسن منصور', 268, null, 'ت', 19],
  ['تقاريظ', 'حضرتا الفاضلين محمود شكري ومصطفى أبو علي', 315, null, 'ت', 20],

  // حرف الجيم
  ['الجرائم تنكشى حتى لا ترى', 'قلم الترجمة', 399, null, 'ج', 1],
  ['الجرائم وحرائق المزارع', 'قلم الترجمة', 433, null, 'ج', 2],
  ['الجلد سياج لجسم الانسان', 'قلم الترجمة', 627, null, 'ج', 3],
  ['الجن', 'حضرة الأستاذ محمد الحسيني رضا أفندي', 292, null, 'ج', 4],
  ['الجواب عن إيراد ابن القيم', 'فضيلة الأستاذ الشيخ إبراهيم الجبالي', 276, null, 'ج', 5],
  ['الجواب عن نقد', 'فضيلة الأستاذ الشيخ حسن منصور', 400, null, 'ج', 6],
];

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

let count = 0;
let lastInsertId = null;
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);
  if (title.includes('تفسير قصة سيدنا شعيب')) lastInsertId = Number(result.lastInsertRowid);
  count++;
}

// إدخال الحلقات التسع المؤكدة بصريا لمقال "تفسير قصة سيدنا شعيب عليه السلام"
// الصفحات المطبوعة كما وردت فى الفهرس: ٩٠،١٦٩،٢٤٩ / ٣٢٨،٣٩٦،٤٨٩ / ٥٩٦،٦٧٠،٧٤٤
if (lastInsertId) {
  const shuaybPages = [90, 169, 249, 328, 396, 489, 596, 670, 744];
  const insertInstallment = db.prepare(`
    INSERT INTO article_installments (article_id, printed_start_page, installment_order, verified)
    VALUES (?, ?, ?, 0)
  `);
  shuaybPages.forEach((p, idx) => insertInstallment.run(lastInsertId, p, idx + 1));
  console.log(`   ↳ تم تسجيل ${shuaybPages.length} حلقة لمقال "تفسير قصة سيدنا شعيب" (غير مؤكدة الربط بـPDF بعد)`);
}

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