// seed-articles.js — إدخال بيانات المقالات والمؤلفين (مُدقَّقة يدويًا من فهرس الموضوعات)
// كل سجل هنا مُراجَع بصريًا من صورة صفحة الفهرس الأصلية لضمان الدقة الكاملة للبيانات الوصفية.
//
// الاستخدام: node scripts/seed-articles.js <volume_id>

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

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

// المؤلفون (بصيغتهم الكاملة كما وردت فى المجلة، مع تطبيع للبحث)
const authorsData = [
  { display_name: 'فضيلة الأستاذ الشيخ حسن منصور', role_title: 'كاتب' },
  { display_name: 'قلم الترجمة', role_title: 'الترجمة' },
  { display_name: 'صاحب العزة الأستاذ مدير المجلة', role_title: 'مدير المجلة' },
  { display_name: 'حضرة الفاضل الأستاذ شحاته محمد الجوهري', role_title: 'كاتب' },
  { display_name: 'صادق إبراهيم عرجون', role_title: 'كاتب' },
  { 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);
}

const authorIds = {};
for (const a of authorsData) {
  authorIds[a.display_name] = upsertAuthor(a);
}

// المقالات: [العنوان، اسم المؤلف (أو null)، صفحة البداية، صفحة النهاية أو null، الحرف الهجائي، الترتيب]
const articlesData = [
  ['آداب الجلوس على الطرقات', 'فضيلة الأستاذ الشيخ حسن منصور', 423, null, 'أ', 1],
  ['آثار برج بابل', 'قلم الترجمة', 657, null, 'أ', 2],
  ['الأب الشغل وواجبه فى التربية', 'صاحب العزة الأستاذ مدير المجلة', 307, null, 'أ', 3],
  ['أثر الاسلام فى الحضارة', 'حضرة الفاضل الأستاذ شحاته محمد الجوهري', 610, null, 'أ', 4],
  ['أثر الثقافة الاسلامية فى تطور النهضة الفكرية', 'صادق إبراهيم عرجون', 700, 791, 'أ', 5],
  ['الاجتهاد', 'فضيلة الأستاذ رئيس التحرير', 36, null, 'أ', 6],
  ['الاجسام المنحجرة', 'قلم الترجمة', 471, 551, 'أ', 7],
  ['أجوبة عن أسئلة شرعية', 'فضيلة الأستاذ الشيخ إبراهيم الجبالي', 370, null, 'أ', 8],
  ['أخلاق محمد صلى الله عليه وسلم', null, 383, null, 'أ', 9],
  ['استرشاد الانسان بالمملكة النباتية والحيوانية', 'قلم الترجمة', 385, null, 'أ', 10],
  ['استكشاف أثرى جديد', 'قلم الترجمة', 546, null, 'أ', 11],
  ['استكشاف أدوات ذهبية وفضية', 'قلم الترجمة', 684, null, 'أ', 12],
  ['الاستصحاب', 'فضيلة الأستاذ رئيس التحرير', 278, null, 'أ', 13],
  ['استخراج غذاء المواشى من الاخشاب البالية', 'قلم الترجمة', 699, null, 'أ', 14],
  ['الاسلام دين الفطرة', 'فضيلة الأستاذ الشيخ إبراهيم الجبالي', 24, 576, 'أ', 15],
  ['الاسلام فى بلاد الانجليز', 'قلم الترجمة', 380, null, 'أ', 16],
  ['أسرار البيضة', 'قلم الترجمة', 466, null, 'أ', 17],
];

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

let count = 0;
for (const [title, authorName, startPage, endPage, letter, order] of articlesData) {
  const authorId = authorName ? authorIds[authorName] : null;
  insertArticle.run(volumeId, title, authorId, startPage, endPage, letter, order);
  count++;
}

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