<?php
// dummy-data.php
// Script untuk membuat data dummy pada database

// Include file konfigurasi
require_once 'includes/config.php';
require_once 'includes/database.php';
require_once 'includes/functions.php';

// Aktifkan error reporting
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// Buat koneksi database
$db = dbConnect();

echo "<h1>Pembuatan Data Dummy</h1>";
echo "<p>Proses pembuatan data dummy dimulai...</p>";

try {
    // Mulai transaksi
    $db->beginTransaction();
    
    // 1. Hapus data yang sudah ada
    echo "<h2>Menghapus data lama jika ada...</h2>";
    
    // Hapus donasi
    $db->query("DELETE FROM donasi");
    $db->execute();
    echo "<p>Data donasi dihapus.</p>";
    
    // Hapus kampanye
    $db->query("DELETE FROM kampanye");
    $db->execute();
    echo "<p>Data kampanye dihapus.</p>";
    
    // Hapus berita
    $db->query("DELETE FROM berita");
    $db->execute();
    echo "<p>Data berita dihapus.</p>";
    
    // Hapus users kecuali admin
    $db->query("DELETE FROM users WHERE role != 'admin'");
    $db->execute();
    echo "<p>Data users (kecuali admin) dihapus.</p>";
    
    // 2. Buat data users (donatur)
    echo "<h2>Membuat data users dummy...</h2>";
    
    $users = [
        [
            'username' => 'budi123',
            'password' => password_hash('password123', PASSWORD_DEFAULT),
            'nama_lengkap' => 'Budi Santoso',
            'email' => 'budi@example.com',
            'no_telp' => '081234567890',
            'alamat' => 'Jl. Contoh No. 123, Jakarta',
            'role' => 'donatur'
        ],
        [
            'username' => 'anisa',
            'password' => password_hash('password123', PASSWORD_DEFAULT),
            'nama_lengkap' => 'Anisa Rahma',
            'email' => 'anisa@example.com',
            'no_telp' => '082345678901',
            'alamat' => 'Jl. Percobaan No. 45, Bandung',
            'role' => 'donatur'
        ],
        [
            'username' => 'doni21',
            'password' => password_hash('password123', PASSWORD_DEFAULT),
            'nama_lengkap' => 'Doni Pratama',
            'email' => 'doni@example.com',
            'no_telp' => '083456789012',
            'alamat' => 'Jl. Uji Coba No. 67, Surabaya',
            'role' => 'donatur'
        ],
        [
            'username' => 'siti_nf',
            'password' => password_hash('password123', PASSWORD_DEFAULT),
            'nama_lengkap' => 'Siti Nurhaliza',
            'email' => 'siti@example.com',
            'no_telp' => '084567890123',
            'alamat' => 'Jl. Testing No. 89, Yogyakarta',
            'role' => 'donatur'
        ],
        [
            'username' => 'rendi99',
            'password' => password_hash('password123', PASSWORD_DEFAULT),
            'nama_lengkap' => 'Rendi Wijaya',
            'email' => 'rendi@example.com',
            'no_telp' => '085678901234',
            'alamat' => 'Jl. Sampel No. 101, Semarang',
            'role' => 'donatur'
        ]
    ];
    
    foreach ($users as $user) {
        $db->query("INSERT INTO users (username, password, nama_lengkap, email, no_telp, alamat, role) 
                   VALUES (:username, :password, :nama_lengkap, :email, :no_telp, :alamat, :role)");
        $db->bind(':username', $user['username']);
        $db->bind(':password', $user['password']);
        $db->bind(':nama_lengkap', $user['nama_lengkap']);
        $db->bind(':email', $user['email']);
        $db->bind(':no_telp', $user['no_telp']);
        $db->bind(':alamat', $user['alamat']);
        $db->bind(':role', $user['role']);
        $db->execute();
        
        echo "<p>User {$user['nama_lengkap']} ({$user['username']}) ditambahkan.</p>";
    }
    
    // 3. Buat data kampanye
    echo "<h2>Membuat data kampanye dummy...</h2>";
    
    // Pastikan admin sudah ada
    $db->query("SELECT id FROM users WHERE role = 'admin' LIMIT 1");
    $admin = $db->single();
    
    if (!$admin) {
        throw new Exception("Admin tidak ditemukan. Pastikan admin sudah dibuat.");
    }
    
    $admin_id = $admin->id;
    
    $kampanye = [
        [
            'judul' => 'Bantuan untuk Korban Banjir di Jakarta',
            'deskripsi' => 'Banjir yang melanda Jakarta telah mengakibatkan ribuan orang kehilangan tempat tinggal. Donasi Anda akan digunakan untuk menyediakan bantuan darurat seperti makanan, air bersih, dan tempat penampungan sementara bagi korban banjir.',
            'target_donasi' => 50000000,
            'tanggal_mulai' => date('Y-m-d'),
            'tanggal_selesai' => date('Y-m-d', strtotime('+30 days')),
            'gambar' => 'banjir-jakarta.jpg',
            'status' => 'aktif'
        ],
        [
            'judul' => 'Bangun Sekolah untuk Desa Terpencil',
            'deskripsi' => 'Pendidikan adalah hak setiap anak. Namun, masih banyak anak-anak di desa terpencil yang kesulitan mendapatkan akses pendidikan karena minimnya fasilitas. Donasi Anda akan digunakan untuk membangun sekolah dan menyediakan perlengkapan belajar.',
            'target_donasi' => 100000000,
            'tanggal_mulai' => date('Y-m-d'),
            'tanggal_selesai' => date('Y-m-d', strtotime('+60 days')),
            'gambar' => 'sekolah-desa.jpg',
            'status' => 'aktif'
        ],
        [
            'judul' => 'Pengadaan Alat Medis untuk Puskesmas',
            'deskripsi' => 'Puskesmas di daerah pedesaan sering kali kekurangan alat medis yang memadai. Donasi Anda akan digunakan untuk membeli peralatan medis yang dibutuhkan oleh puskesmas agar dapat memberikan pelayanan kesehatan yang lebih baik kepada masyarakat.',
            'target_donasi' => 75000000,
            'tanggal_mulai' => date('Y-m-d'),
            'tanggal_selesai' => date('Y-m-d', strtotime('+45 days')),
            'gambar' => 'alat-medis.jpg',
            'status' => 'aktif'
        ],
        [
            'judul' => 'Bantuan Pendidikan untuk Anak Yatim',
            'deskripsi' => 'Banyak anak yatim yang kesulitan melanjutkan pendidikan karena kendala biaya. Donasi Anda akan digunakan untuk membiayai pendidikan anak-anak yatim, termasuk biaya sekolah, seragam, buku, dan perlengkapan lainnya.',
            'target_donasi' => 60000000,
            'tanggal_mulai' => date('Y-m-d', strtotime('-10 days')),
            'tanggal_selesai' => date('Y-m-d', strtotime('+50 days')),
            'gambar' => 'anak-yatim.jpg',
            'status' => 'aktif'
        ],
        [
            'judul' => 'Pembangunan Masjid di Desa Suka Maju',
            'deskripsi' => 'Desa Suka Maju belum memiliki tempat ibadah yang layak. Donasi Anda akan digunakan untuk membangun masjid yang dapat menjadi pusat kegiatan keagamaan dan sosial bagi masyarakat desa.',
            'target_donasi' => 150000000,
            'tanggal_mulai' => date('Y-m-d', strtotime('-15 days')),
            'tanggal_selesai' => date('Y-m-d', strtotime('+75 days')),
            'gambar' => 'masjid-desa.jpg',
            'status' => 'aktif'
        ]
    ];
    
    foreach ($kampanye as $k) {
        $db->query("INSERT INTO kampanye (judul, deskripsi, target_donasi, tanggal_mulai, tanggal_selesai, gambar, status, created_by) 
                   VALUES (:judul, :deskripsi, :target_donasi, :tanggal_mulai, :tanggal_selesai, :gambar, :status, :created_by)");
        $db->bind(':judul', $k['judul']);
        $db->bind(':deskripsi', $k['deskripsi']);
        $db->bind(':target_donasi', $k['target_donasi']);
        $db->bind(':tanggal_mulai', $k['tanggal_mulai']);
        $db->bind(':tanggal_selesai', $k['tanggal_selesai']);
        $db->bind(':gambar', $k['gambar']);
        $db->bind(':status', $k['status']);
        $db->bind(':created_by', $admin_id);
        $db->execute();
        
        $kampanye_id = $db->lastInsertId();
        echo "<p>Kampanye '{$k['judul']}' ditambahkan dengan ID: $kampanye_id</p>";
    }
    
    // 4. Buat data donasi
    echo "<h2>Membuat data donasi dummy...</h2>";
    
    // Ambil semua user donatur
    $db->query("SELECT id FROM users WHERE role = 'donatur'");
    $donatur_list = $db->resultSet();
    
    // Ambil semua kampanye
    $db->query("SELECT id FROM kampanye");
    $kampanye_list = $db->resultSet();
    
    $donasi_data = [];
    
    // Buat data donasi random
    foreach ($kampanye_list as $kampanye) {
        $jumlah_donasi = rand(3, 8); // Jumlah donasi per kampanye
        
        for ($i = 0; $i < $jumlah_donasi; $i++) {
            $donatur = $donatur_list[array_rand($donatur_list)];
            $jumlah = rand(10, 100) * 10000; // Donasi antara 100rb - 1jt
            $status = ['menunggu', 'diverifikasi', 'diverifikasi', 'diverifikasi']; // 75% diverifikasi
            
            $donasi_data[] = [
                'kampanye_id' => $kampanye->id,
                'user_id' => $donatur->id,
                'jumlah' => $jumlah,
                'metode_pembayaran' => 'transfer bank',
                'keterangan' => 'Semoga bantuan ini bermanfaat',
                'bukti_transfer' => 'bukti-transfer.jpg',
                'status' => $status[array_rand($status)],
                'is_anonim' => rand(0, 1),
                'admin_verifikasi' => $admin_id
            ];
        }
    }
    
    foreach ($donasi_data as $donasi) {
        $db->query("INSERT INTO donasi (kampanye_id, user_id, jumlah, metode_pembayaran, keterangan, bukti_transfer, status, is_anonim, admin_verifikasi) 
                   VALUES (:kampanye_id, :user_id, :jumlah, :metode_pembayaran, :keterangan, :bukti_transfer, :status, :is_anonim, :admin_verifikasi)");
        $db->bind(':kampanye_id', $donasi['kampanye_id']);
        $db->bind(':user_id', $donasi['user_id']);
        $db->bind(':jumlah', $donasi['jumlah']);
        $db->bind(':metode_pembayaran', $donasi['metode_pembayaran']);
        $db->bind(':keterangan', $donasi['keterangan']);
        $db->bind(':bukti_transfer', $donasi['bukti_transfer']);
        $db->bind(':status', $donasi['status']);
        $db->bind(':is_anonim', $donasi['is_anonim']);
        $db->bind(':admin_verifikasi', $donasi['admin_verifikasi']);
        $db->execute();
        
        echo "<p>Donasi sebesar Rp " . number_format($donasi['jumlah']) . " untuk kampanye ID: {$donasi['kampanye_id']} ditambahkan.</p>";
    }
    
    // 5. Buat data berita
    echo "<h2>Membuat data berita dummy...</h2>";
    
    $berita = [
        [
            'judul' => 'Penyaluran Bantuan untuk Korban Banjir Jakarta',
            'konten' => 'Yayasan Pundi Amal Mulia telah menyalurkan bantuan untuk korban banjir di Jakarta. Bantuan berupa sembako, selimut, dan obat-obatan telah diterima oleh warga yang terdampak banjir. Bantuan ini merupakan hasil dari donasi para donatur yang telah terkumpul melalui kampanye "Bantuan untuk Korban Banjir di Jakarta".

Penyaluran bantuan dilakukan langsung oleh tim Yayasan Pundi Amal Mulia yang turun ke lokasi bencana. Tim juga bekerja sama dengan relawan setempat untuk memastikan bantuan tepat sasaran.

"Kami mengucapkan terima kasih kepada para donatur yang telah memberikan bantuan. Semoga bantuan ini dapat meringankan beban warga yang terdampak banjir," ujar Ketua Yayasan Pundi Amal Mulia.

Yayasan Pundi Amal Mulia akan terus memantau perkembangan situasi dan memberikan bantuan sesuai kebutuhan warga.',
            'gambar' => 'penyaluran-bantuan.jpg'
        ],
        [
            'judul' => 'Sekolah Desa Harapan Telah Selesai Dibangun',
            'konten' => 'Yayasan Pundi Amal Mulia dengan bangga mengumumkan bahwa proyek pembangunan Sekolah Desa Harapan telah selesai. Sekolah ini dibangun di desa terpencil yang sebelumnya tidak memiliki fasilitas pendidikan yang memadai.

Pembangunan sekolah ini merupakan hasil dari kampanye "Bangun Sekolah untuk Desa Terpencil" yang telah mendapatkan dukungan dari banyak donatur. Dana yang terkumpul telah digunakan untuk membangun gedung sekolah, menyediakan meja dan kursi, serta perlengkapan belajar lainnya.

"Kami sangat senang melihat anak-anak di desa ini akhirnya memiliki tempat belajar yang layak. Pendidikan adalah kunci untuk masa depan yang lebih baik," kata Direktur Program Yayasan Pundi Amal Mulia.

Sekolah ini akan mulai beroperasi pada tahun ajaran baru dan diharapkan dapat menampung sekitar 100 siswa. Yayasan Pundi Amal Mulia juga akan terus mendukung operasional sekolah ini dengan menyediakan beasiswa untuk siswa kurang mampu.',
            'gambar' => 'sekolah-selesai.jpg'
        ],
        [
            'judul' => 'Program Beasiswa untuk 50 Anak Yatim',
            'konten' => 'Yayasan Pundi Amal Mulia telah memberikan beasiswa kepada 50 anak yatim untuk melanjutkan pendidikan mereka. Program beasiswa ini merupakan bagian dari kampanye "Bantuan Pendidikan untuk Anak Yatim" yang telah mendapatkan dukungan dari para donatur.

Beasiswa mencakup biaya pendidikan, seragam sekolah, buku, dan perlengkapan sekolah lainnya. Program ini bertujuan untuk memastikan bahwa anak-anak yatim tetap dapat mengenyam pendidikan yang berkualitas meskipun menghadapi kendala ekonomi.

"Pendidikan adalah hak setiap anak, termasuk anak-anak yatim. Kami berharap program beasiswa ini dapat membantu mereka untuk meraih mimpi dan cita-cita," ujar Koordinator Program Beasiswa Yayasan Pundi Amal Mulia.

Para penerima beasiswa juga akan mendapatkan pendampingan secara berkala untuk memantau perkembangan akademik mereka. Yayasan Pundi Amal Mulia berkomitmen untuk terus mendukung pendidikan anak-anak yatim melalui program beasiswa ini.',
            'gambar' => 'beasiswa-anak-yatim.jpg'
        ],
        [
            'judul' => 'Pelatihan Keterampilan untuk Pemuda Desa',
            'konten' => 'Yayasan Pundi Amal Mulia bersama mitra telah menyelenggarakan pelatihan keterampilan untuk pemuda desa. Pelatihan ini bertujuan untuk meningkatkan keterampilan dan kompetensi pemuda desa agar dapat bersaing di dunia kerja atau membuka usaha sendiri.

Pelatihan yang diselenggarakan meliputi keterampilan komputer, bahasa Inggris, desain grafis, dan kewirausahaan. Sebanyak 30 pemuda dari berbagai desa mengikuti pelatihan yang berlangsung selama satu minggu ini.

"Pelatihan ini merupakan bagian dari program pemberdayaan masyarakat yang kami lakukan. Kami ingin membekali pemuda desa dengan keterampilan yang relevan dengan kebutuhan pasar kerja saat ini," kata Ketua Yayasan Pundi Amal Mulia.

Para peserta pelatihan juga mendapatkan sertifikat yang dapat menjadi nilai tambah dalam melamar pekerjaan. Beberapa peserta terbaik juga mendapatkan kesempatan magang di perusahaan-perusahaan mitra Yayasan Pundi Amal Mulia.',
            'gambar' => 'pelatihan-pemuda.jpg'
        ],
        [
            'judul' => 'Penyerahan Alat Medis untuk Puskesmas Desa Sejahtera',
            'konten' => 'Yayasan Pundi Amal Mulia telah menyerahkan alat-alat medis untuk Puskesmas Desa Sejahtera. Penyerahan alat medis ini merupakan hasil dari kampanye "Pengadaan Alat Medis untuk Puskesmas" yang telah mendapatkan dukungan dari para donatur.

Alat medis yang diserahkan antara lain tensimeter, termometer digital, stetoskop, alat USG portable, dan berbagai peralatan medis lainnya. Alat-alat ini diharapkan dapat meningkatkan pelayanan kesehatan di puskesmas tersebut.

"Kesehatan adalah hal yang sangat penting. Dengan adanya alat medis yang memadai, kami berharap masyarakat desa dapat mendapatkan pelayanan kesehatan yang lebih baik," ujar Direktur Program Yayasan Pundi Amal Mulia.

Kepala Puskesmas Desa Sejahtera menyampaikan rasa terima kasih atas bantuan yang diberikan. "Alat-alat medis ini sangat membantu kami dalam memberikan pelayanan kesehatan kepada masyarakat desa," katanya.',
            'gambar' => 'penyerahan-alat-medis.jpg'
        ]
    ];
    
    foreach ($berita as $b) {
        $db->query("INSERT INTO berita (judul, konten, gambar, created_by) 
                   VALUES (:judul, :konten, :gambar, :created_by)");
        $db->bind(':judul', $b['judul']);
        $db->bind(':konten', $b['konten']);
        $db->bind(':gambar', $b['gambar']);
        $db->bind(':created_by', $admin_id);
        $db->execute();
        
        echo "<p>Berita '{$b['judul']}' ditambahkan.</p>";
    }
    
    // Commit transaksi
    $db->endTransaction();
    
    echo "<h2>Pembuatan data dummy berhasil!</h2>";
    echo "<p>Klik <a href='index.php'>disini</a> untuk kembali ke halaman utama.</p>";
    
} catch (Exception $e) {
    // Rollback transaksi jika terjadi error
    $db->cancelTransaction();
    
    echo "<h2>Error!</h2>";
    echo "<p>Terjadi kesalahan: " . $e->getMessage() . "</p>";
}
?>