require('dotenv').config();
const mysql = require('mysql2/promise');

async function seed() {
  const db = await mysql.createConnection({
    host: process.env.DB_HOST || '127.0.0.1',
    user: process.env.DB_USER || 'root',
    password: process.env.DB_PASSWORD || '',
    database: process.env.DB_NAME || 'bd_ceramah',
  });

  console.log('🌱 Seeding data...');

  // ── USERS ──
  const bcrypt = require('bcryptjs');
  const hash = bcrypt.hashSync('ustadz123', 10);
  await db.query(`INSERT IGNORE INTO users (id,nama,email,password,role,status) VALUES
    (2,'Ustadz Ahmad Fauzi','fauzi@nuralilm.id','${hash}','Ustadz','Aktif'),
    (3,'Ustadzah Siti Aisyah','aisyah@nuralilm.id','${hash}','Ustadz','Aktif'),
    (4,'Editor Hasan','hasan@nuralilm.id','${hash}','Editor','Aktif')
  `);
  console.log('✅ Users');

  // ── MATERI ──
  await db.query(`DELETE FROM materi`);
  await db.query(`INSERT INTO materi (judul,jenis,kategori,status,excerpt,konten,penulis_id) VALUES
    ('Keutamaan Shalat Berjamaah','Tulisan','Fiqih','Publikasi',
     'Mengenal keutamaan dan hikmah shalat berjamaah di masjid berdasarkan hadits shahih.',
     '<h2>Keutamaan Shalat Berjamaah</h2><p>Rasulullah ﷺ bersabda: <em>"Shalat berjamaah lebih utama 27 derajat dibanding shalat sendirian."</em> (HR. Bukhari & Muslim)</p><p>Shalat berjamaah bukan sekadar ibadah ritual, melainkan sarana mempererat ukhuwah Islamiyah. Di dalamnya terkandung nilai kebersamaan, kedisiplinan, dan ketaatan kepada Allah SWT.</p><h3>Hikmah Shalat Berjamaah</h3><ul><li>Melatih kedisiplinan waktu</li><li>Mempererat silaturahmi antar jamaah</li><li>Mendapatkan pahala berlipat ganda</li><li>Menjaga keimanan tetap terjaga</li></ul>',2),

    ('Adab Menuntut Ilmu dalam Islam','Tulisan','Akhlak','Publikasi',
     'Panduan adab dan etika dalam menuntut ilmu menurut ajaran Islam.',
     '<h2>Adab Menuntut Ilmu</h2><p>Imam Syafi''i berkata: <em>"Ilmu itu bukan yang dihafal, tapi yang memberi manfaat."</em></p><p>Menuntut ilmu adalah kewajiban setiap muslim. Namun, ilmu tanpa adab bagaikan api tanpa cahaya. Berikut adab-adab yang perlu diperhatikan:</p><ol><li>Niat yang ikhlas karena Allah</li><li>Menghormati guru dan ulama</li><li>Sabar dan tekun dalam belajar</li><li>Mengamalkan ilmu yang didapat</li></ol>',3),

    ('Tafsir Surah Al-Fatihah','Tulisan','Tafsir','Publikasi',
     'Memahami makna mendalam Surah Al-Fatihah, pembuka Al-Quran yang agung.',
     '<h2>Tafsir Surah Al-Fatihah</h2><p>Surah Al-Fatihah disebut Ummul Kitab (induk Al-Quran) karena mencakup pokok-pokok ajaran Islam.</p><p><strong>Bismillahirrahmanirrahim</strong> — Segala sesuatu dimulai dengan nama Allah yang Maha Pengasih lagi Maha Penyayang.</p><p><strong>Alhamdulillahi Rabbil Alamin</strong> — Segala puji hanya milik Allah, Tuhan semesta alam.</p>',2),

    ('Panduan Puasa Ramadhan','Tulisan','Fiqih','Publikasi',
     'Panduan lengkap ibadah puasa Ramadhan dari niat hingga berbuka.',
     '<h2>Panduan Puasa Ramadhan</h2><p>Puasa Ramadhan adalah rukun Islam ke-4 yang wajib dilaksanakan setiap muslim yang memenuhi syarat.</p><h3>Syarat Wajib Puasa</h3><ul><li>Islam</li><li>Baligh</li><li>Berakal</li><li>Mampu berpuasa</li></ul><h3>Hal yang Membatalkan Puasa</h3><ul><li>Makan dan minum dengan sengaja</li><li>Muntah dengan sengaja</li></ul>',3),

    ('Kisah Nabi Ibrahim AS','Tulisan','Sirah','Publikasi',
     'Teladan keteguhan iman Nabi Ibrahim AS dalam menghadapi ujian.',
     '<h2>Kisah Nabi Ibrahim AS</h2><p>Nabi Ibrahim AS adalah Khalilullah (kekasih Allah). Beliau diuji dengan berbagai ujian berat namun tetap teguh dalam keimanan.</p><p>Dari kisah beliau, kita belajar tentang tawakal, kesabaran, dan keikhlasan dalam beribadah kepada Allah SWT.</p>',2),

    ('Belajar Bahasa Arab: Mubtada dan Khabar','Tulisan','Bahasa Arab','Publikasi',
     'Pengenalan dasar tata bahasa Arab tentang mubtada dan khabar.',
     '<h2>Mubtada dan Khabar</h2><p>Dalam bahasa Arab, kalimat nominal (jumlah ismiyyah) terdiri dari mubtada (subjek) dan khabar (predikat).</p><p>Contoh: <strong>الكِتَابُ جَدِيدٌ</strong> (Al-kitaabu jadiidun) — Buku itu baru.</p>',3)
  `);
  console.log('✅ Materi (6 items)');

  // ── RISALAH ──
  await db.query(`DELETE FROM risalah`);
  await db.query(`INSERT INTO risalah (judul,khatib,tanggal,excerpt,konten,status) VALUES
    ('Menjaga Lisan di Era Digital','Ustadz Ahmad Fauzi','2026-04-25',
     'Khutbah tentang pentingnya menjaga lisan di zaman media sosial.',
     '<p>Rasulullah ﷺ bersabda: "Barangsiapa beriman kepada Allah dan hari akhir, hendaklah ia berkata baik atau diam." (HR. Bukhari Muslim)</p><p>Di era digital, lisan tidak hanya mulut tetapi juga jari-jari kita saat mengetik di media sosial.</p>','Publikasi'),
    ('Keutamaan Bulan Muharram','Ustadz Ahmad Fauzi','2026-04-18',
     'Mengenal keutamaan bulan Muharram dan amalan-amalan di dalamnya.',
     '<p>Bulan Muharram adalah salah satu bulan haram yang memiliki banyak keutamaan. Di antaranya adalah puasa Asyura pada tanggal 10 Muharram.</p>','Publikasi'),
    ('Sabar dalam Menghadapi Ujian','Ustadzah Siti Aisyah','2026-04-11',
     'Hikmah kesabaran dalam menghadapi cobaan kehidupan.',
     '<p>Allah SWT berfirman: "Sesungguhnya Allah beserta orang-orang yang sabar." (QS. Al-Baqarah: 153)</p>','Publikasi'),
    ('Membangun Keluarga Sakinah','Ustadz Ahmad Fauzi','2026-04-04',
     'Kunci membangun rumah tangga yang sakinah, mawaddah, wa rahmah.',
     '<p>Keluarga sakinah adalah impian setiap muslim. Kuncinya adalah komunikasi yang baik, saling menghormati, dan menjadikan Al-Quran sebagai pedoman.</p>','Publikasi')
  `);
  console.log('✅ Risalah (4 items)');

  // ── BERITA ──
  await db.query(`DELETE FROM berita`);
  await db.query(`INSERT INTO berita (judul,penulis,kategori,konten,status) VALUES
    ('Peringatan Isra Mi''raj 1448 H di Masjid Al-Ikhlas','Admin','Kegiatan',
     '<p>Masjid Al-Ikhlas mengadakan peringatan Isra Mi''raj 1448 H dengan tema "Meniti Jejak Perjalanan Suci Rasulullah ﷺ". Acara dihadiri lebih dari 500 jamaah.</p><p>Penceramah utama, Ustadz Ahmad Fauzi, menyampaikan hikmah perjalanan Isra Mi''raj dan relevansinya di zaman modern.</p>','Publikasi'),
    ('Pembukaan Kelas Tahsin Al-Quran Angkatan 12','Admin','Pendidikan',
     '<p>Nūr Al-''Ilm membuka pendaftaran kelas Tahsin Al-Quran angkatan ke-12. Program ini dirancang untuk memperbaiki bacaan Al-Quran bagi pemula hingga menengah.</p><p>Pendaftaran dibuka mulai 1-15 Mei 2026. Kuota terbatas 30 peserta per kelas.</p>','Publikasi'),
    ('Santunan Anak Yatim Ramadhan 1448 H','Admin','Sosial',
     '<p>Dalam rangka Ramadhan 1448 H, Nūr Al-''Ilm menyelenggarakan program santunan untuk 100 anak yatim di wilayah Surabaya dan sekitarnya.</p>','Publikasi'),
    ('Kajian Rutin Sabtu: Riyadhus Shalihin','Admin','Kajian',
     '<p>Kajian rutin setiap Sabtu pagi pukul 08.00-10.00 WIB membahas kitab Riyadhus Shalihin karya Imam An-Nawawi. Terbuka untuk umum.</p>','Publikasi'),
    ('Wisuda Hafidz Quran Angkatan 5','Admin','Pendidikan',
     '<p>Alhamdulillah, 15 santri berhasil menyelesaikan hafalan 30 juz Al-Quran. Wisuda dilaksanakan di Gedung Serbaguna dengan mengundang para wali santri.</p>','Publikasi')
  `);
  console.log('✅ Berita (5 items)');

  // ── PROGRAM ──
  await db.query(`DELETE FROM program`);
  await db.query(`INSERT INTO program (nama,lokasi,tanggal,waktu,desc_text,status) VALUES
    ('Kajian Subuh Bersama','Masjid Al-Ikhlas, Surabaya','2026-05-10','05:00-06:30',
     'Kajian rutin setelah shalat Subuh membahas kitab Bulughul Maram. Terbuka untuk umum.','Upcoming'),
    ('Pelatihan Tahsin Level 2','Gedung Nūr Al-''Ilm Lt. 2','2026-05-15','09:00-12:00',
     'Pelatihan intensif membaca Al-Quran dengan tajwid yang benar. Peserta wajib sudah lulus Level 1.','Upcoming'),
    ('Bakti Sosial Jumat Berkah','Panti Asuhan Darussalam','2026-05-17','08:00-12:00',
     'Kunjungan dan santunan ke panti asuhan. Donasi bisa berupa sembako, pakaian layak, atau uang tunai.','Upcoming'),
    ('Seminar Parenting Islami','Aula Masjid Agung Surabaya','2026-05-22','13:00-16:00',
     'Tema: "Mendidik Anak di Era Digital dengan Nilai-Nilai Islam". Pembicara: Ustadz Ahmad Fauzi.','Upcoming'),
    ('Buka Puasa Bersama Senin-Kamis','Masjid Al-Ikhlas, Surabaya','2026-05-26','17:00-18:30',
     'Buka puasa sunnah bersama jamaah. Menu disediakan oleh panitia. Gratis untuk umum.','Ongoing')
  `);
  console.log('✅ Program (5 items)');

  // ── DONASI ──
  await db.query(`DELETE FROM donasi`);
  await db.query(`INSERT INTO donasi (nama,email,nominal,metode,pesan,status) VALUES
    ('Haji Suleiman','suleiman@mail.com',5000000,'Transfer Bank','Semoga bermanfaat untuk umat','Terkonfirmasi'),
    ('Anonim','',1000000,'Transfer Bank','Lillahi ta''ala','Terkonfirmasi'),
    ('Ibu Fatimah','fatimah@mail.com',2500000,'Transfer Bank','Untuk pembangunan masjid','Terkonfirmasi'),
    ('Ahmad Rizki','rizki@mail.com',500000,'Transfer Bank','Sedekah jariyah','Terkonfirmasi'),
    ('Anonim','',750000,'Transfer Bank','','Pending'),
    ('Dewi Rahmawati','dewi@mail.com',3000000,'Transfer Bank','Untuk santunan anak yatim','Terkonfirmasi'),
    ('Budi Santoso','budi@mail.com',1500000,'Transfer Bank','Infaq bulanan','Pending')
  `);
  console.log('✅ Donasi (7 items)');

  // ── KONSULTASI ──
  await db.query(`DELETE FROM konsultasi_reply`);
  await db.query(`DELETE FROM konsultasi`);
  await db.query(`INSERT INTO konsultasi (id,penanya,email,pertanyaan,status,ustadz_id) VALUES
    (1,'Abdullah','abdullah@mail.com','Assalamualaikum, bagaimana hukum shalat jamak dan qashar saat bepergian jauh? Apakah ada batasan jarak minimal?','answered',2),
    (2,'Siti Nurhaliza','siti@mail.com','Ustadz, apakah wanita boleh membaca Al-Quran saat haid? Mohon penjelasannya.','answered',3),
    (3,'Rizky Pratama','rizky@mail.com','Bagaimana cara menghitung zakat penghasilan? Apakah dipotong dari gaji kotor atau bersih?','pending',NULL),
    (4,'Aminah','aminah@mail.com','Apa hukum jual beli online dalam Islam? Apakah ada syarat khusus yang harus dipenuhi?','closed',2)
  `);
  await db.query(`INSERT INTO konsultasi_reply (konsultasi_id,dari,nama,teks) VALUES
    (1,'admin','Ustadz Ahmad Fauzi','Wa''alaikumussalam. Shalat jamak dan qashar diperbolehkan bagi musafir dengan jarak perjalanan minimal sekitar 80-90 km menurut jumhur ulama. Hal ini berdasarkan hadits dari Ibnu Abbas RA.'),
    (1,'user','Abdullah','Jazakallahu khairan, Ustadz. Apakah boleh menjamak shalat jika sudah sampai di tujuan?'),
    (1,'admin','Ustadz Ahmad Fauzi','Boleh, selama masih berstatus musafir dan belum berniat mukim (tinggal) lebih dari 4 hari menurut mayoritas ulama.'),
    (2,'admin','Ustadzah Siti Aisyah','Dalam masalah ini terdapat perbedaan pendapat ulama. Pendapat yang rajih (kuat) membolehkan membaca Al-Quran tanpa menyentuh mushaf langsung. Bisa menggunakan HP atau sarung tangan.'),
    (4,'admin','Ustadz Ahmad Fauzi','Jual beli online hukumnya boleh selama memenuhi syarat: barang jelas, harga transparan, tidak ada unsur gharar (ketidakjelasan), dan tidak mengandung riba. Pastikan deskripsi produk sesuai dengan barang aslinya.'),
    (4,'user','Aminah','Terima kasih Ustadz, sangat membantu. Jazakallahu khairan.')
  `);
  await db.query(`UPDATE konsultasi SET rating=5, ulasan='Jawaban sangat jelas dan memuaskan' WHERE id=4`);
  console.log('✅ Konsultasi + Replies (4 items)');

  // ── NEWSLETTER ──
  await db.query(`DELETE FROM newsletter`);
  await db.query(`INSERT INTO newsletter (email,status) VALUES
    ('subscriber1@mail.com','Aktif'),('subscriber2@mail.com','Aktif'),
    ('subscriber3@mail.com','Aktif'),('subscriber4@mail.com','Aktif'),
    ('subscriber5@mail.com','Aktif'),('inactive@mail.com','Nonaktif')
  `);
  console.log('✅ Newsletter (6 items)');

  // ── LOGS ──
  await db.query(`DELETE FROM logs`);
  await db.query(`INSERT INTO logs (level,msg,user_id,ip) VALUES
    ('INFO','Login berhasil: admin@nuralilm.id',1,'127.0.0.1'),
    ('SUCCESS','Materi ditambahkan: Keutamaan Shalat Berjamaah',1,'127.0.0.1'),
    ('SUCCESS','Risalah ditambahkan: Menjaga Lisan di Era Digital',1,'127.0.0.1'),
    ('INFO','Pengaturan diperbarui',1,'127.0.0.1'),
    ('SUCCESS','Foto galeri ditambahkan: Kajian Subuh',1,'127.0.0.1'),
    ('WARNING','Login gagal: unknown@mail.com',NULL,'192.168.1.50')
  `);
  console.log('✅ Logs (6 items)');

  // ── SETTINGS (update) ──
  const settings = [
    ['site_name', "Nūr Al-'Ilm"],
    ['site_desc', 'Platform Dakwah & Edukasi Islami Terpercaya'],
    ['contact_email', 'info@nuralilm.id'],
    ['contact_phone', '+62 812-3456-7890'],
    ['address', 'Jl. Masjid Al-Ikhlas No. 45, Surabaya, Jawa Timur'],
    ['prayer_city', 'Surabaya'],
    ['prayer_country', 'Indonesia'],
    ['prayer_method', '11'],
  ];
  for (const [k, v] of settings) {
    await db.query('INSERT INTO settings (`key`,value) VALUES (?,?) ON DUPLICATE KEY UPDATE value=?', [k, v, v]);
  }
  console.log('✅ Settings updated');

  console.log('\n🎉 Seeding selesai! Data sampling berhasil dimasukkan.');
  console.log('   Login admin: admin@nuralilm.id / admin123');
  console.log('   Login ustadz: fauzi@nuralilm.id / ustadz123');
  await db.end();
}

seed().catch(err => { console.error('❌ Seed error:', err); process.exit(1); });
