// ─────────────────────────────────────────────────────────────────────────────
// One-off content migration:
//   1) move every existing radar_item → articles(type='radarfuture') as a BLOCK
//      article (رادار آینده), mapping its category to one of the 5 sub-menus.
//   2) clear radar_items, then seed it with the 10 «در یک نگاه» (/at-a-glance) cards.
//
// Safe to run once. If radarfuture articles already exist it assumes the
// migration ran and exits without doing anything.
//
//   cd panel && node scripts/migrate-content.mjs
// ─────────────────────────────────────────────────────────────────────────────
import 'dotenv/config';
import { nanoid } from 'nanoid';
import { db } from '../db.js';

// radar_item.category → رادار آینده sub-menu
const CAT_TO_SUBMENU = {
  market:    'بازار و زنجیره فولاد',
  commodity: 'بازار و زنجیره فولاد',
  tech:      'فناوری و نوآوری',
  geo:       'ژئوپلیتیک و اقتصاد جهانی',
  energy:    'پایداری و فولاد سبز',
};

// the 10 «در یک نگاه» cards (mirrors src/pages/AtAGlance/AtAGlance.tsx)
const GLANCE = [
  { cat:'market', img:'/news/photo-1504307651254-35680f356dfd.jpg', title:'شوک هیدروژنی به بازار جهانی فولاد',
    body:['پروژه عظیم «فولاد سبز H2» در سوئد با جذب بی‌سابقه ۶.۵ میلیارد یورو سرمایه، رسماً وارد فاز اجرایی شد.','این تأسیسات با هدف کاهش ۹۵ درصدی انتشار CO₂، قواعد رقابت در زنجیره ارزش اروپا را برای همیشه بازتعریف می‌کند.'],
    analysis:'تحول فولاد سبز، فرصت صادراتی ایران را در بازارهای سنتی تهدید می‌کند.', tags:['فولاد سبز','هیدروژن','اروپا'], source:'Financial Times', date:'۱۴ اردیبهشت ۱۴۰۵' },
  { cat:'market', img:'/news/photo-1581092160607-ee22731c9b4e.jpg', title:'CBAM اروپا وارد اجرای کامل شد',
    body:['با اجرای کامل مکانیسم تنظیم مرزهای کربنی، صادرکنندگان فولاد به اروپا موظف به پرداخت هزینه کامل کربن شدند.','این تحول فشار بی‌سابقه‌ای بر تولیدکنندگان مبتنی بر کوره بلند وارد کرده است.'],
    analysis:'ایران باید فوری‌ترین اولویت خود را کربن‌زدایی از فرآیند تولید قرار دهد.', tags:['CBAM','کربن','صادرات'], source:'Reuters', date:'۱۲ اردیبهشت ۱۴۰۵' },
  { cat:'tech', img:'/news/photo-1518770660439-4636190af475.jpg', title:'هوش مصنوعی تقاضای فولاد مراکز داده را بازتعریف می‌کند',
    body:['موج ساخت مراکز داده هوش مصنوعی، تقاضای جدیدی برای مقاطع ساختمانی و فولاد ویژه ایجاد کرده است.','تحلیلگران پیش‌بینی می‌کنند این روند تا پایان دهه یکی از پیشران‌های اصلی رشد مصرف فولاد باشد.'],
    analysis:'فولادسازان باید ظرفیت تولید مقاطع ساختمانی پیشرفته را افزایش دهند.', tags:['هوش مصنوعی','مراکز داده','تقاضا'], source:'Bloomberg', date:'۱۰ اردیبهشت ۱۴۰۵' },
  { cat:'tech', img:'/news/photo-1567789884554-0b844b597180.jpg', title:'اتوماسیون کوره‌های القایی در ایران',
    body:['چندین کارخانه بزرگ فولاد ایران سرمایه‌گذاری در سیستم‌های کنترل هوشمند کوره را آغاز کرده‌اند.','این سیستم‌ها توانایی کاهش مصرف انرژی تا ۱۵ درصد را دارند.'],
    analysis:'گام مثبتی است اما سرعت پیاده‌سازی باید افزایش یابد.', tags:['اتوماسیون','کوره','انرژی'], source:'فولاد نیوز', date:'۸ اردیبهشت ۱۴۰۵' },
  { cat:'geo', img:'/news/photo-1540575467063-178a50c2df87.jpg', title:'تنش‌های خاورمیانه و تجارت فولاد',
    body:['ناآرامی‌های منطقه‌ای مسیرهای حمل‌ونقل دریایی را مختل کرده و هزینه‌های لجستیک را افزایش داده است.','صادرکنندگان ایرانی با چالش‌های اضافی در انتقال محصولات روبرو هستند.'],
    analysis:'تنوع‌بخشی در مسیرهای صادراتی اکنون یک ضرورت استراتژیک است.', tags:['ژئوپلیتیک','حمل دریایی','صادرات'], source:'Al Jazeera', date:'۶ اردیبهشت ۱۴۰۵' },
  { cat:'geo', img:'/news/photo-1570168007204-dfb528c6958f.jpg', title:'رقابت چین و آمریکا بر سر فلزات استراتژیک',
    body:['تنش‌های ژئوپلیتیک میان قدرت‌های بزرگ، زنجیره تأمین فلزات حیاتی را بی‌ثبات کرده است.','این رقابت فرصت‌هایی برای تأمین‌کنندگان جایگزین ایجاد می‌کند.'],
    analysis:'ایران می‌تواند نقش تأمین‌کننده جایگزین برخی فلزات را ایفا کند.', tags:['چین','آمریکا','فلزات'], source:'Reuters', date:'۴ اردیبهشت ۱۴۰۵' },
  { cat:'energy', img:'/news/photo-1466611653911-95081537e5b7.jpg', title:'بحران گاز و صنعت فولاد ایران',
    body:['کمبود گاز در فصل سرما چندین واحد فولادسازی را مجبور به تعلیق موقت تولید کرد.','این چالش ساختاری نیاز به سرمایه‌گذاری جدی در زیرساخت انرژی دارد.'],
    analysis:'بدون تأمین پایدار انرژی، اهداف تولید فولاد محقق نمی‌شود.', tags:['گاز','انرژی','تولید'], source:'ایسنا', date:'۲ اردیبهشت ۱۴۰۵' },
  { cat:'energy', img:'/news/photo-1611273426858-450d8e3c9fce.jpg', title:'انرژی خورشیدی برای فولادسازی پایدار',
    body:['پتانسیل عظیم انرژی خورشیدی ایران می‌تواند پایه‌ای برای فولادسازی کم‌کربن باشد.','اولین پروژه‌های آزمایشی ترکیب پنل خورشیدی با کوره‌های الکتریکی در حال بررسی است.'],
    analysis:'سرمایه‌گذاری در این حوزه می‌تواند چند مشکل را هم‌زمان حل کند.', tags:['خورشیدی','فولاد سبز','EAF'], source:'PV Magazine', date:'۳۰ فروردین ۱۴۰۵' },
  { cat:'commodity', img:'/news/photo-1540575467063-178a50c2df87.jpg', title:'قیمت سنگ‌آهن در مسیر کاهش',
    body:['کاهش تقاضای چین در بخش ساختمان قیمت سنگ‌آهن را به پایین‌ترین سطح دو سال گذشته رساند.','این کاهش برای تولیدکنندگان فولاد مبتنی بر کوره بلند مزیت هزینه‌ای ایجاد می‌کند.'],
    analysis:'فرصتی برای افزایش ذخیره‌سازی سنگ‌آهن با قیمت پایین وجود دارد.', tags:['سنگ‌آهن','چین','قیمت'], source:'Bloomberg', date:'۲۸ فروردین ۱۴۰۵' },
  { cat:'commodity', img:'/news/photo-1504307651254-35680f356dfd.jpg', title:'نوسان قیمت زغال‌سنگ کک‌شو',
    body:['محدودیت‌های صادرات استرالیا و بارندگی در مناطق استخراجی، قیمت زغال کک‌شو را نوسانی کرده است.','این بی‌ثباتی برنامه‌ریزی تولید را برای کارخانه‌های کوره بلند دشوار می‌کند.'],
    analysis:'تنوع در منابع تأمین زغال‌سنگ یک اولویت استراتژیک است.', tags:['زغال‌سنگ','استرالیا','تولید'], source:'Metal Bulletin', date:'۲۶ فروردین ۱۴۰۵' },
];

const done = await db.prepare("SELECT COUNT(*)::int AS n FROM articles WHERE type = 'radarfuture'").get();
if (done.n > 0) {
  console.log(`⏭  ${done.n} radarfuture article(s) already exist — migration already ran, exiting.`);
  process.exit(0);
}

// 1) radar_items → articles(radarfuture) as block articles
const radars = await db.prepare('SELECT * FROM radar_items ORDER BY sort_order, created_at').all();
let migrated = 0;
for (const r of radars) {
  const blocks = [];
  if (r.img) blocks.push({ type: 'image', url: r.img, caption: '' });
  if (r.body_fa) blocks.push({ type: 'text', value: r.body_fa });
  if (r.analysis_fa) blocks.push({ type: 'text', value: 'تحلیل راهبردی: ' + r.analysis_fa });
  if (!blocks.length) blocks.push({ type: 'text', value: r.excerpt_fa || r.title_fa || '' });
  const tags = r.tags ? JSON.parse(r.tags) : [];
  const sources = r.source ? [{ title: r.source, url: '' }] : [];
  await db.prepare(`INSERT INTO articles
      (id,title,category,type,publish_date,summary,body,cover_image,blocks,sources,tags,featured)
      VALUES (@id,@title,@category,'radarfuture',@publish_date,@summary,@body,@cover_image,@blocks,@sources,@tags,0)`)
    .run({
      id: nanoid(14),
      title: r.title_fa || 'بدون عنوان',
      category: CAT_TO_SUBMENU[r.category] || 'آینده‌پژوهی و رصد هوشمند',
      publish_date: r.date_fa || null,
      summary: r.excerpt_fa || null,
      body: r.body_fa || null,
      cover_image: r.img || null,
      blocks: JSON.stringify(blocks),
      sources: JSON.stringify(sources),
      tags: JSON.stringify(tags),
    });
  migrated++;
}
console.log(`✓ migrated ${migrated} radar_item(s) → رادار آینده (articles/radarfuture)`);

// 2) clear radar_items, seed with the 10 «در یک نگاه» cards
await db.prepare('DELETE FROM radar_items').run();
let seeded = 0;
for (let i = 0; i < GLANCE.length; i++) {
  const c = GLANCE[i];
  await db.prepare(`INSERT INTO radar_items
      (id,category,img,title_fa,date_fa,excerpt_fa,body_fa,analysis_fa,tags,source,sort_order)
      VALUES (@id,@category,@img,@title_fa,@date_fa,@excerpt_fa,@body_fa,@analysis_fa,@tags,@source,@sort_order)`)
    .run({
      id: nanoid(14),
      category: c.cat,
      img: c.img,
      title_fa: c.title,
      date_fa: c.date,
      excerpt_fa: c.body[0] || '',
      body_fa: c.body.join('\n\n'),
      analysis_fa: c.analysis,
      tags: JSON.stringify(c.tags),
      source: c.source,
      sort_order: i,
    });
  seeded++;
}
console.log(`✓ seeded ${seeded} «در یک نگاه» card(s) → radar_items`);
console.log('🎉 migration complete.');
process.exit(0);
