// Seed mock «در یک نگاه» items (radar_items) across the 5 categories.
// Does NOT touch «رادار آینده» (radarFuture / radar_pages).
// Run from panel/:  node scripts/seed-glance-mock.mjs
import fs from 'node:fs';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
import pg from 'pg';

const __dirname = path.dirname(fileURLToPath(import.meta.url));

// minimal .env loader (panel/.env)
const envPath = path.join(__dirname, '..', '.env');
if (fs.existsSync(envPath)) {
  for (const line of fs.readFileSync(envPath, 'utf8').split(/\r?\n/)) {
    const m = line.match(/^\s*([A-Z0-9_]+)\s*=\s*(.*)\s*$/);
    if (m && !process.env[m[1]]) process.env[m[1]] = m[2].replace(/^["']|["']$/g, '');
  }
}
if (!process.env.DATABASE_URL) { console.error('DATABASE_URL not set'); process.exit(1); }

const pool = new pg.Pool({
  connectionString: process.env.DATABASE_URL,
  ssl: process.env.DATABASE_SSL === 'disable' ? false : { rejectUnauthorized: false },
});

const IMGS = [
  '/news/photo-1611974789855-9c2a0a7236a3.jpg',
  '/news/photo-1518770660439-4636190af475.jpg',
  '/news/photo-1581092160607-ee22731c9b4e.jpg',
  '/news/photo-1466611653911-95081537e5b7.jpg',
  '/news/photo-1504307651254-35680f356dfd.jpg',
];
const DATES_FA = ['فروردین ۱۴۰۵', 'اردیبهشت ۱۴۰۵', 'خرداد ۱۴۰۵', 'تیر ۱۴۰۵'];
const DATES_EN = ['Mar 2026', 'Apr 2026', 'May 2026', 'Jun 2026'];
const AUTHOR = 'تحریریه اندیشکده فولاد آینده';

// 4 topics per category: [titleFa, excerptFa, bodyFa(2 paras), analysisFa, titleEn, excerptEn, bodyEn, analysisEn]
const DATA = {
  market: [
    ['روند قیمت جهانی فولاد در نیمه دوم ۱۴۰۵', 'بررسی عوامل کلان مؤثر بر قیمت فولاد در بازارهای جهانی.',
      ['قیمت جهانی فولاد در ماه‌های اخیر تحت تأثیر تقاضای چین، سیاست‌های پولی بانک‌های مرکزی و نوسان هزینه انرژی قرار گرفته است.', 'تحلیل‌گران معتقدند تثبیت تقاضای ساخت‌وساز و کاهش نرخ بهره می‌تواند کف قیمتی جدیدی برای بازار رقم بزند.'],
      'برای فولادسازان ایرانی، پایش هفتگی شاخص‌های قیمت و پوشش ریسک ارزی، کلید حفظ حاشیه سود در این دوره نوسانی است.',
      'Global Steel Price Trend in H2 2026', 'Macro drivers shaping steel prices in world markets.',
      ['Global steel prices have been driven by Chinese demand, central-bank policy and volatile energy costs.'], 'Iranian mills should hedge FX exposure and track weekly price indices to protect margins.'],
    ['تأثیر تورم جهانی بر تقاضای فولاد', 'چگونه تورم و سیاست انقباضی، مصرف فولاد را بازتعریف می‌کند.',
      ['تورم پایدار در اقتصادهای بزرگ، هزینه تأمین مالی پروژه‌های زیرساختی را افزایش داده و بخشی از تقاضای فولاد را به تعویق انداخته است.', 'با این حال، طرح‌های توسعه زیرساخت در آسیا و خاورمیانه همچنان موتور محرک تقاضا باقی مانده‌اند.'],
      'تمرکز بر بازارهای منطقه‌ای با تقاضای ساختاری بالا، ریسک کاهش مصرف ناشی از تورم را تا حد زیادی خنثی می‌کند.',
      'Global Inflation and Steel Demand', 'How inflation reshapes steel consumption.',
      ['Persistent inflation has raised infrastructure financing costs and deferred part of steel demand.'], 'Focusing on regional markets with structural demand offsets inflation-driven consumption risk.'],
    ['چشم‌انداز بازار سنگ‌آهن و قراضه', 'تعادل عرضه و تقاضا در زنجیره مواد اولیه فولاد.',
      ['بازار سنگ‌آهن با افزایش عرضه استرالیا و برزیل و همزمان رشد تقاضای کوره‌های قوس الکتریکی برای قراضه، وارد فاز جدیدی شده است.', 'قیمت قراضه به‌عنوان شاخص پیشرو، نقش مهمی در پیش‌بینی مسیر قیمت محصولات نهایی دارد.'],
      'تنوع‌بخشی به منابع تأمین سنگ‌آهن و توسعه بازار قراضه داخلی، مزیت رقابتی پایداری ایجاد می‌کند.',
      'Iron Ore and Scrap Market Outlook', 'Supply-demand balance in steel raw materials.',
      ['Iron ore supply from Australia and Brazil rose while EAF scrap demand climbed.'], 'Diversifying ore sources and growing the domestic scrap market builds durable advantage.'],
    ['نوسانات نرخ ارز و صادرات فولاد ایران', 'اثر بی‌ثباتی ارزی بر رقابت‌پذیری صادرات.',
      ['نوسان نرخ ارز هم فرصت و هم تهدید برای صادرکنندگان فولاد است؛ تضعیف پول ملی رقابت قیمتی را بهبود می‌دهد اما هزینه واردات تجهیزات را بالا می‌برد.', 'مدیریت ریسک ارزی از طریق ابزارهای پوشش و قراردادهای بلندمدت اهمیت یافته است.'],
      'صادرکنندگانی که سبد ارزی متنوع و قراردادهای ارزی پوشش‌دار دارند، در برابر شوک‌های نرخ ارز تاب‌آورترند.',
      'FX Volatility and Iran Steel Exports', 'How currency swings affect export competitiveness.',
      ['Currency volatility is both an opportunity and a threat for steel exporters.'], 'Exporters with diversified currency baskets and hedged contracts are more resilient.'],
  ],
  tech: [
    ['هوش مصنوعی در بهینه‌سازی کوره‌های قوس الکتریکی', 'کاهش مصرف انرژی با مدل‌های یادگیری ماشین.',
      ['الگوریتم‌های یادگیری ماشین با تحلیل هزاران پارامتر فرآیندی، نقطه بهینه مصرف انرژی و افزودنی‌ها را در کوره‌های قوس الکتریکی پیش‌بینی می‌کنند.', 'کارخانه‌های پیشرو تا ۱۲ درصد کاهش مصرف برق و بهبود کیفیت مذاب را گزارش کرده‌اند.'],
      'سرمایه‌گذاری در زیرساخت داده و حسگرها پیش‌نیاز بهره‌برداری واقعی از هوش مصنوعی در فولادسازی است.',
      'AI for Electric Arc Furnace Optimization', 'Cutting energy use with machine learning.',
      ['ML models predict the optimal energy and additive set-point in EAFs.'], 'Investing in data infrastructure and sensors is a prerequisite for real AI gains.'],
    ['دوقلوی دیجیتال در خطوط نورد', 'شبیه‌سازی بی‌درنگ برای کنترل کیفیت.',
      ['دوقلوی دیجیتال نسخه‌ای مجازی از خط نورد می‌سازد که امکان شبیه‌سازی سناریوها و پیش‌بینی عیوب پیش از وقوع را فراهم می‌کند.', 'این فناوری زمان توقف برنامه‌ریزی‌نشده را به‌طور محسوس کاهش می‌دهد.'],
      'استقرار تدریجی دوقلوی دیجیتال از واحدهای پرریسک، مسیر کم‌هزینه‌تری برای تحول دیجیتال است.',
      'Digital Twins in Rolling Mills', 'Real-time simulation for quality control.',
      ['A digital twin mirrors the rolling line to simulate scenarios and predict defects.'], 'Rolling out digital twins from high-risk units first is the lower-cost path.'],
    ['چاپ سه‌بعدی فلزی و آینده تولید قطعات', 'ساخت افزایشی در صنعت فولاد.',
      ['چاپ سه‌بعدی فلزی امکان تولید قطعات یدکی پیچیده و کم‌تیراژ را بدون نیاز به قالب فراهم می‌کند و زنجیره تأمین را کوتاه می‌سازد.', 'کاربرد آن در ساخت قطعات تعمیراتی کوره‌ها رو به گسترش است.'],
      'ساخت افزایشی برای قطعات بحرانی و کمیاب، ریسک توقف تولید ناشی از کمبود قطعه را کاهش می‌دهد.',
      'Metal 3D Printing and the Future of Parts', 'Additive manufacturing in steel.',
      ['Metal 3D printing enables complex, low-volume spare parts without tooling.'], 'Additive manufacturing for critical, scarce parts reduces downtime risk.'],
    ['اینترنت اشیای صنعتی در فولادسازی', 'پایش بی‌درنگ تجهیزات و نگهداری پیش‌بینانه.',
      ['با اتصال هزاران حسگر به پلتفرم‌های ابری، وضعیت سلامت تجهیزات به‌صورت لحظه‌ای پایش و خرابی‌ها پیش‌بینی می‌شود.', 'نگهداری پیش‌بینانه نرخ خرابی ناگهانی را به‌طور چشمگیری کاهش داده است.'],
      'یکپارچگی داده میان واحدها، شرط تبدیل داده‌های حسگر به تصمیم‌های عملیاتی ارزشمند است.',
      'Industrial IoT in Steelmaking', 'Real-time monitoring and predictive maintenance.',
      ['Thousands of cloud-connected sensors monitor equipment health in real time.'], 'Cross-unit data integration turns sensor data into valuable operational decisions.'],
  ],
  commodity: [
    ['زنجیره تأمین عناصر نادر خاکی', 'وابستگی صنعت به مواد معدنی حیاتی.',
      ['عناصر نادر خاکی و فلزات حیاتی، نقش راهبردی در فناوری‌های نوین و آلیاژهای پیشرفته فولاد دارند و تمرکز عرضه آن‌ها در چند کشور، ریسک ژئواکونومیک ایجاد می‌کند.', 'توسعه ذخایر داخلی و بازیافت، اهرم کاهش این وابستگی است.'],
      'نقشه‌برداری از ریسک تأمین مواد معدنی حیاتی باید بخشی از برنامه‌ریزی راهبردی صنعت باشد.',
      'Rare Earth Supply Chain', 'Industry dependence on critical minerals.',
      ['Rare earths play a strategic role in advanced steel alloys and new tech.'], 'Mapping critical-mineral supply risk must be part of strategic planning.'],
    ['امنیت تأمین سنگ‌آهن داخلی', 'پایداری زنجیره مواد اولیه فولاد کشور.',
      ['با رشد ظرفیت فولادسازی، تقاضای سنگ‌آهن از عرضه داخلی پیشی گرفته و مدیریت ذخایر و کنسانتره اهمیت راهبردی یافته است.', 'سرمایه‌گذاری در اکتشاف و فرآوری، تضمین‌کننده تأمین بلندمدت است.'],
      'تعادل میان صادرات سنگ‌آهن خام و تأمین خوراک داخلی، تصمیمی کلیدی برای سیاست‌گذار است.',
      'Domestic Iron Ore Security', 'Stability of the national raw-material chain.',
      ['Steelmaking growth has outpaced domestic iron ore supply.'], 'Balancing raw ore exports with domestic feed is a key policy decision.'],
    ['بازار جهانی زغال‌سنگ کک‌شو', 'نقش زغال کک در مسیر تولید فولاد.',
      ['زغال‌سنگ کک‌شو نهاده کلیدی کوره‌بلند است و نوسان قیمت و محدودیت عرضه آن مستقیماً بر بهای تمام‌شده فولاد اثر می‌گذارد.', 'گذار به فناوری‌های کم‌کربن، تقاضای آتی این ماده را تحت‌تأثیر قرار می‌دهد.'],
      'تنوع منابع تأمین زغال کک و قراردادهای بلندمدت، نوسان بهای تمام‌شده را مهار می‌کند.',
      'Global Coking Coal Market', 'Coke’s role in the steel route.',
      ['Coking coal is a key blast-furnace input; its price swings hit steel costs.'], 'Diversified coking-coal sources and long-term contracts curb cost volatility.'],
    ['تاب‌آوری زنجیره تأمین مواد اولیه', 'مدیریت ریسک اختلال در تأمین.',
      ['رویدادهای اقلیمی، تنش‌های تجاری و اعتصابات می‌توانند زنجیره تأمین مواد اولیه را مختل کنند؛ از این‌رو تاب‌آوری به اولویت راهبردی بدل شده است.', 'موجودی ایمنی و چندمنبعی‌سازی، دو ابزار اصلی کاهش این ریسک‌اند.'],
      'طراحی زنجیره تأمین چندمنبعی با موجودی ایمنی هوشمند، تداوم تولید را در شوک‌ها تضمین می‌کند.',
      'Raw-Material Supply Resilience', 'Managing disruption risk.',
      ['Climate events, trade tensions and strikes can disrupt raw-material chains.'], 'Multi-sourcing with smart safety stock ensures production continuity in shocks.'],
  ],
  geo: [
    ['ژئوپلیتیک تعرفه‌های فولاد و امنیت اقتصادی', 'بازآرایی تجارت جهانی فولاد در سایه تعرفه‌ها.',
      ['موج جدید تعرفه‌ها و اقدامات حمایتی، مسیرهای صادراتی فولاد را بازآرایی کرده و امنیت اقتصادی تولیدکنندگان را به مسئله‌ای راهبردی تبدیل کرده است.', 'کشورهای صادرکننده ناچار به یافتن بازارهای جایگزین و ائتلاف‌های تجاری جدیدند.'],
      'برای ایران، تمرکز بر بازارهای جنوب جهانی و کریدورهای منطقه‌ای، سپر ژئوپلیتیک تعرفه‌هاست.',
      'Geopolitics of Steel Tariffs', 'Reshaping global trade under tariffs.',
      ['A new wave of tariffs is realigning steel export routes.'], 'For Iran, focusing on the Global South and regional corridors is the tariff shield.'],
    ['تحریم‌ها و مسیرهای جایگزین صادرات', 'راهبردهای دور زدن محدودیت‌های تجاری.',
      ['تحریم‌ها هزینه و پیچیدگی صادرات را افزایش می‌دهند، اما توسعه مسیرهای جایگزین و شرکای منطقه‌ای، فضای تنفس ایجاد می‌کند.', 'لجستیک منعطف و تنوع مقصد، کلید تداوم صادرات است.'],
      'سرمایه‌گذاری در زیرساخت لجستیک منطقه‌ای، اثر تحریم بر جریان صادرات را کاهش می‌دهد.',
      'Sanctions and Alternative Export Routes', 'Strategies around trade restrictions.',
      ['Sanctions raise export cost and complexity; alternative routes create breathing room.'], 'Investing in regional logistics infrastructure dampens sanctions’ impact on exports.'],
    ['رقابت چین و آمریکا در بازار فولاد', 'اثر رقابت دو ابرقدرت بر بازارهای هدف.',
      ['رقابت راهبردی چین و آمریکا بر زنجیره ارزش فولاد، از فناوری تا تجارت، سایه افکنده و بازارهای ثالث را به میدان رقابت تبدیل کرده است.', 'مازاد عرضه چین فشار قیمتی مستمری بر بازارهای آسیا و خاورمیانه وارد می‌کند.'],
      'پایش سیاست‌های تجاری دو ابرقدرت، پیش‌نیاز تصمیم‌گیری صادراتی هوشمندانه است.',
      'US-China Rivalry in Steel', 'Superpower competition in target markets.',
      ['US-China rivalry shadows the steel value chain from tech to trade.'], 'Monitoring both powers’ trade policy is a prerequisite for smart export decisions.'],
    ['کریدورهای ترانزیتی و امنیت تجارت', 'نقش کریدورهای منطقه‌ای در پایداری صادرات.',
      ['کریدورهای ترانزیتی شمال-جنوب و شرق-غرب، فرصت کاهش هزینه و زمان حمل فولاد به بازارهای منطقه‌ای را فراهم می‌کنند.', 'امنیت و پایداری این مسیرها مستقیماً بر رقابت‌پذیری صادرات اثر می‌گذارد.'],
      'مشارکت فعال در توسعه کریدورهای منطقه‌ای، مزیت لجستیکی پایدار ایجاد می‌کند.',
      'Transit Corridors and Trade Security', 'Regional corridors for export stability.',
      ['North-South and East-West corridors cut steel shipping cost and time.'], 'Active participation in regional corridors builds durable logistics advantage.'],
  ],
  energy: [
    ['توافق‌نامه‌های تجاری منطقه‌ای و فولاد', 'فرصت‌های ناشی از پیمان‌های تجاری.',
      ['پیمان‌های تجاری منطقه‌ای با کاهش تعرفه و تسهیل گمرکی، دسترسی فولاد ایران به بازارهای همسایه را آسان‌تر می‌کنند.', 'بهره‌گیری از این ظرفیت نیازمند انطباق با استانداردها و گواهی‌های مقصد است.'],
      'تطبیق محصولات با استانداردهای بازار هدف، پیش‌شرط بهره‌برداری از مزایای پیمان‌های تجاری است.',
      'Regional Trade Pacts and Steel', 'Opportunities from trade agreements.',
      ['Regional trade pacts ease Iranian steel access to neighboring markets.'], 'Meeting destination standards is a precondition for reaping pact benefits.'],
    ['فرصت‌های صادرات به آفریقا و آسیای جنوب شرقی', 'بازارهای نوظهور با تقاضای رو به رشد.',
      ['رشد جمعیت و شهرنشینی در آفریقا و آسیای جنوب شرقی، تقاضای پایداری برای مقاطع ساختمانی فولاد ایجاد کرده است.', 'این بازارها کمتر در معرض فشارهای ژئوپلیتیک غرب قرار دارند.'],
      'حضور زودهنگام و ساخت شبکه توزیع محلی، سهم بازار بلندمدت در این مقاصد را تثبیت می‌کند.',
      'Export Opportunities in Africa and SE Asia', 'Emerging markets with rising demand.',
      ['Population growth and urbanization drive steady steel demand in Africa and SE Asia.'], 'Early entry and local distribution networks lock in long-term market share.'],
    ['تجارت مرزی و بازارهای همسایه', 'ظرفیت بازارهای کم‌فاصله برای صادرات.',
      ['بازارهای همسایه با هزینه حمل پایین و نیاز ساختاری به فولاد، مقصد طبیعی صادرات کوتاه‌زنجیره‌اند.', 'تسهیل تجارت مرزی و بازارچه‌ها، جریان صادرات خرد را تقویت می‌کند.'],
      'تمرکز بر بازارهای همسایه با لجستیک کوتاه، حاشیه سود صادرات را به‌دلیل هزینه حمل پایین بهبود می‌دهد.',
      'Border Trade and Neighboring Markets', 'Short-haul export potential.',
      ['Neighboring markets with low freight cost are natural short-chain export targets.'], 'Focusing on nearby markets improves export margins via low freight cost.'],
    ['کسب‌وکارهای صادرات‌محورِ فولاد', 'مدل‌های نوین تجارت بین‌المللی.',
      ['شرکت‌های صادرات‌محور با تخصصی‌سازی در بازارهای هدف و خدمات پس از فروش، ارزش افزوده بالاتری نسبت به صادرات خام ایجاد می‌کنند.', 'برندسازی و کیفیت پایدار، مزیت رقابتی این مدل است.'],
      'گذار از صادرات خام به مدل صادرات‌محورِ برنددار، تاب‌آوری درآمد ارزی را افزایش می‌دهد.',
      'Export-Oriented Steel Businesses', 'New international trade models.',
      ['Export-focused firms add more value than raw exports via specialization and after-sales.'], 'Shifting from raw exports to branded export models boosts FX revenue resilience.'],
  ],
};

const rows = [];
let order = 0;
const cats = Object.keys(DATA);
cats.forEach((cat, ci) => {
  DATA[cat].forEach((t, i) => {
    rows.push({
      id: `glance-${cat}-${i + 1}`,
      category: cat,
      img: IMGS[(ci + i) % IMGS.length],
      author_name: AUTHOR,
      author_avatar: '',
      title_fa: t[0], date_fa: DATES_FA[i % DATES_FA.length], excerpt_fa: t[1],
      body_fa: t[2].join('\n\n'), analysis_fa: t[3],
      title_en: t[4], date_en: DATES_EN[i % DATES_EN.length], excerpt_en: t[5],
      body_en: t[6].join('\n\n'), analysis_en: t[7],
      sort_order: order++,
    });
  });
});

const SQL = `
INSERT INTO radar_items
  (id, category, img, author_name, author_avatar, title_fa, date_fa, excerpt_fa, body_fa, analysis_fa,
   title_en, date_en, excerpt_en, body_en, analysis_en, sort_order)
VALUES
  ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16)
ON CONFLICT (id) DO UPDATE SET
  category=EXCLUDED.category, img=EXCLUDED.img, author_name=EXCLUDED.author_name,
  title_fa=EXCLUDED.title_fa, date_fa=EXCLUDED.date_fa, excerpt_fa=EXCLUDED.excerpt_fa,
  body_fa=EXCLUDED.body_fa, analysis_fa=EXCLUDED.analysis_fa,
  title_en=EXCLUDED.title_en, date_en=EXCLUDED.date_en, excerpt_en=EXCLUDED.excerpt_en,
  body_en=EXCLUDED.body_en, analysis_en=EXCLUDED.analysis_en, sort_order=EXCLUDED.sort_order,
  updated_at=now();
`;

const main = async () => {
  let n = 0;
  for (const r of rows) {
    await pool.query(SQL, [
      r.id, r.category, r.img, r.author_name, r.author_avatar, r.title_fa, r.date_fa, r.excerpt_fa, r.body_fa, r.analysis_fa,
      r.title_en, r.date_en, r.excerpt_en, r.body_en, r.analysis_en, r.sort_order,
    ]);
    n++;
  }
  const counts = await pool.query(
    "SELECT category, count(*)::int AS c FROM radar_items GROUP BY category ORDER BY category"
  );
  console.log(`seeded ${n} mock «در یک نگاه» items.`);
  console.table(counts.rows);
  await pool.end();
};
main().catch((e) => { console.error(e); process.exit(1); });
