// seed-articles-page8.js — حروف الصاد، الضاد، الطاء، الظاء، العين، الغين (من صفحة فهرس PDF رقم 8)

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

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

const NEW_AUTHORS = [
  { 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;
}

const articlesData = [
  // حرف الصاد
  ['صدق العزيمة أو قوة الارادة', 'فضيلة الأستاذ رئيس التحرير', 403, null, 'ص', 1],
  ['صلة الرحم وغيرها', 'فضيلة الأستاذ الشيخ حسن منصور', 198, null, 'ص', 2],
  ['صنع الصور واقتناؤها', 'فضيلة الأستاذ رئيس التحرير', 780, null, 'ص', 3],

  // حرف الضاد
  ['الضوء والعمل', 'قلم الترجمة', 612, null, 'ض', 1],

  // حرف الطاء
  ['الطيارات وكيف تطير', 'قلم الترجمة', 547, null, 'ط', 1],

  // حرف الظاء
  ['ظاهرة مرئية', 'قلم الترجمة', 672, null, 'ظ', 1],

  // حرف العين
  ['العثور على نباتات سامة جديدة', 'قلم الترجمة', 622, null, 'ع', 1],
  ['العدل فى معاملة الأطفال', 'صاحب العزة الأستاذ مدير المجلة', 390, null, 'ع', 2],
  ['علاقة الأخلاق بالشريعة الاسلامية والقانون الوضعى', 'فضيلة الأستاذ الشيخ عبد الله صيام', 78, null, 'ع', 3], // متسلسل: ٧٨، ٢١٧
  ['العلماء والاصلاح', 'فضيلة الأستاذ رئيس التحرير', 163, null, 'ع', 4],
  ['العلم يحمينا من سطو اللصوص', 'قلم الترجمة', 634, null, 'ع', 5],

  // حرف الغين
  ['غاز مرطب لمنازل المناطق الحارة', 'قلم الترجمة', 422, null, 'غ', 1],
  ['غرائب الحاصلات', null, 76, null, 'غ', 2], // الاستاذ محمد الحسيني رضا أفندي (موجود مسبقا)
  ['الغواصات وكيف تغوص', 'قلم الترجمة', 631, null, 'غ', 3],
  ['الغيرة على الحقائق والمصالح', 'فضيلة الأستاذ رئيس التحرير', 483, 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 ghara2ib = db.prepare(`SELECT id FROM authors WHERE display_name LIKE '%محمد الحسيني رضا%' OR display_name LIKE '%محمد الحسينى رضا%'`).get();
if (ghara2ib) {
  db.prepare(`UPDATE articles SET author_id = ? WHERE title = 'غرائب الحاصلات'`).run(ghara2ib.id);
}

// حلقات "علاقة الأخلاق بالشريعة الاسلامية والقانون الوضعى": ٧٨، ٢١٧
const insertInstallment = db.prepare(`
  INSERT INTO article_installments (article_id, printed_start_page, installment_order, verified)
  VALUES (?, ?, ?, 0)
`);
[78, 217].forEach((p, idx) => insertInstallment.run(ids['علاقة الأخلاق بالشريعة الاسلامية والقانون الوضعى'], p, idx + 1));

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

// ✅ ربط مقال "الغيرة على الحقائق والمصالح" بصفحته الفعلية المؤكدة بصريا فى الجلسة السابقة (PDF 503)
const ghiraId = ids['الغيرة على الحقائق والمصالح'];
const page503 = db.prepare(`SELECT id FROM pages WHERE pdf_page_number = 503 AND volume_id = ?`).get(volumeId);
if (page503 && ghiraId) {
  db.prepare(`UPDATE pages SET article_id = ?, printed_page_number = '٤٨٣' WHERE id = ?`).run(ghiraId, page503.id);
  db.prepare(`UPDATE articles SET pdf_start_page = 503 WHERE id = ?`).run(ghiraId);
  console.log('✅ تم ربط وتصحيح مقال "الغيرة على الحقائق والمصالح" بصفحته الفعلية المؤكدة (PDF 503، مطبوعة ٤٨٣)');
}
