<?php
// sekretaris/kampanye/tambah.php

// Aktifkan pelaporan semua jenis error
error_reporting(E_ALL);

// Tampilkan error ke browser
ini_set('display_errors', 1);

// Untuk environment development
ini_set('display_startup_errors', 1);

$pageTitle = 'Tambah Kampanye';
require_once '../../includes/config.php';
require_once '../../includes/database.php';
require_once '../../includes/functions.php';
require_once '../../includes/auth.php';

// Mulai session jika belum dimulai
if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

// Cek apakah user sudah login dan role-nya sekretaris
if (!isset($_SESSION['user_id']) || !isset($_SESSION['role']) || $_SESSION['role'] != 'sekretaris') {
    // Redirect ke halaman login jika belum login atau bukan sekretaris
    setFlash('login_required', 'Anda harus login sebagai sekretaris untuk mengakses halaman ini', 'danger');
    header('Location: ' . SITE_URL . '/auth/login.php');
    exit;
}

// Koneksi database
$db = dbConnect();

// Proses form jika disubmit
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Validasi input
    $judul = sanitize($_POST['judul'] ?? '');
    $deskripsi = $_POST['deskripsi'] ?? '';
    $target_donasi = str_replace(['Rp', '.', ','], '', $_POST['target_donasi'] ?? 0);
    $tanggal_mulai = $_POST['tanggal_mulai'] ?? '';
    $tanggal_selesai = $_POST['tanggal_selesai'] ?? '';
    
    $errors = [];
    
    // Validasi data
    if (empty($judul)) {
        $errors[] = 'Judul kampanye tidak boleh kosong';
    }
    
    if (empty($deskripsi)) {
        $errors[] = 'Deskripsi kampanye tidak boleh kosong';
    }
    
    if (empty($target_donasi) || !is_numeric($target_donasi) || $target_donasi <= 0) {
        $errors[] = 'Target donasi harus berupa angka dan lebih dari 0';
    }
    
    if (empty($tanggal_mulai)) {
        $errors[] = 'Tanggal mulai tidak boleh kosong';
    }
    
    if (empty($tanggal_selesai)) {
        $errors[] = 'Tanggal selesai tidak boleh kosong';
    }
    
    if (!empty($tanggal_mulai) && !empty($tanggal_selesai)) {
        if (strtotime($tanggal_mulai) > strtotime($tanggal_selesai)) {
            $errors[] = 'Tanggal mulai tidak boleh lebih besar dari tanggal selesai';
        }
    }
    
    // Upload gambar
    $gambar = 'default.jpg'; // Default jika tidak ada gambar yang diupload
    if (isset($_FILES['gambar']) && $_FILES['gambar']['error'] != UPLOAD_ERR_NO_FILE) {
        $upload_dir = UPLOAD_DIR . 'kampanye/';
        $upload_result = uploadFile($_FILES['gambar'], $upload_dir, 'gambar');
        
        if ($upload_result === false) {
            $errors[] = 'Upload gambar gagal. Pastikan format file adalah JPG, JPEG, atau PNG dan ukuran tidak lebih dari 2MB';
        } else {
            $gambar = $upload_result;
        }
    }
    
    // Jika tidak ada error, simpan data
    if (empty($errors)) {
        $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', $judul);
        $db->bind(':deskripsi', $deskripsi);
        $db->bind(':target_donasi', $target_donasi);
        $db->bind(':tanggal_mulai', $tanggal_mulai);
        $db->bind(':tanggal_selesai', $tanggal_selesai);
        $db->bind(':gambar', $gambar);
        $db->bind(':status', 'menunggu_persetujuan'); // Default status saat pertama kali dibuat
        $db->bind(':created_by', $_SESSION['user_id']);
        
        if ($db->execute()) {
            $kampanye_id = $db->lastInsertId();
            
            // Log aktivitas
            logActivity('Membuat kampanye baru', 'kampanye', $kampanye_id, 'Sekretaris membuat kampanye baru: ' . $judul);
            
            // Buat notifikasi untuk ketua
            $db->query("SELECT id FROM users WHERE role = 'ketua'");
            $ketua = $db->resultSet();
            foreach ($ketua as $user) {
                // createNotification(
                //     $user->id,
                //     'Kampanye Baru Menunggu Persetujuan',
                //     'Ada kampanye baru yang membutuhkan persetujuan Anda: ' . $judul,
                //     SITE_URL . '/ketua/kampanye/detail.php?id=' . $kampanye_id
                // );
            }
            
            setFlash('kampanye', 'Kampanye berhasil dibuat dan menunggu persetujuan dari Ketua Yayasan', 'success');
            header('Location: ' . SITE_URL . '/sekretaris/kampanye/index.php');
            exit;
        } else {
            setFlash('tambah_kampanye', 'Gagal menyimpan data kampanye', 'danger');
        }
    } else {
        // Gabungkan semua error
        $error_message = implode('<br>', $errors);
        setFlash('tambah_kampanye', $error_message, 'danger');
    }
}

// Include header
require_once '../../includes/header.php';
?>

<div class="container-fluid">
    <div class="row">
        <!-- Sidebar -->
                <?php require_once '../../includes/sidebar-sekretaris.php'; ?>


        <!-- Content Area -->
        <main class="col-md-9 ms-sm-auto col-lg-10 px-md-4">
            <div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
                <h1 class="h2">Tambah Kampanye</h1>
                <div class="btn-toolbar mb-2 mb-md-0">
                    <a href="<?= SITE_URL ?>/sekretaris/kampanye/index.php" class="btn btn-sm btn-outline-secondary">
                        <i class="fas fa-arrow-left me-1"></i> Kembali
                    </a>
                </div>
            </div>

            <?php flash(); ?>

            <!-- Form Tambah Kampanye -->
            <div class="card">
                <div class="card-body">
                    <form action="" method="post" enctype="multipart/form-data">
                        <div class="row">
                            <div class="col-md-8">
                                <div class="mb-3">
                                    <label for="judul" class="form-label">Judul Kampanye <span class="text-danger">*</span></label>
                                    <input type="text" class="form-control" id="judul" name="judul" required value="<?= $_POST['judul'] ?? '' ?>">
                                </div>
                                
                                <div class="mb-3">
                                    <label for="deskripsi" class="form-label">Deskripsi <span class="text-danger">*</span></label>
                                    <textarea class="form-control" id="deskripsi" name="deskripsi" rows="10" required><?= $_POST['deskripsi'] ?? '' ?></textarea>
                                </div>
                            </div>
                            
                            <div class="col-md-4">
                                <div class="mb-3">
                                    <label for="gambar" class="form-label">Gambar Kampanye</label>
                                    <input type="file" class="form-control image-upload" id="gambar" name="gambar" accept="image/jpeg,image/png,image/jpg" data-preview="preview-gambar">
                                    <small class="form-text text-muted">Format: JPG, JPEG, PNG. Maks: 2MB</small>
                                    <div class="mt-2">
                                        <img id="preview-gambar" src="<?= SITE_URL ?>/assets/uploads/kampanye/default.jpg" alt="Preview" class="img-thumbnail" style="max-height: 200px">
                                    </div>
                                </div>
                                
                                <div class="mb-3">
                                    <label for="target_donasi" class="form-label">Target Donasi <span class="text-danger">*</span></label>
                                    <div class="input-group">
                                        <span class="input-group-text">Rp</span>
                                        <input type="text" class="form-control rupiah-input" id="target_donasi" name="target_donasi" required value="<?= $_POST['target_donasi'] ?? '' ?>">
                                    </div>
                                </div>
                                
                                <div class="mb-3">
                                    <label for="tanggal_mulai" class="form-label">Tanggal Mulai <span class="text-danger">*</span></label>
                                    <input type="date" class="form-control" id="tanggal_mulai" name="tanggal_mulai" required value="<?= $_POST['tanggal_mulai'] ?? date('Y-m-d') ?>">
                                </div>
                                
                                <div class="mb-3">
                                    <label for="tanggal_selesai" class="form-label">Tanggal Selesai <span class="text-danger">*</span></label>
                                    <input type="date" class="form-control" id="tanggal_selesai" name="tanggal_selesai" required value="<?= $_POST['tanggal_selesai'] ?? date('Y-m-d', strtotime('+30 days')) ?>">
                                </div>
                                
                                <div class="alert alert-info">
                                    <i class="fas fa-info-circle me-1"></i> Kampanye yang Anda buat akan menunggu persetujuan dari Ketua Yayasan sebelum dipublikasikan.
                                </div>
                            </div>
                        </div>
                        
                        <div class="d-grid gap-2 d-md-flex justify-content-md-end">
                            <button type="reset" class="btn btn-secondary me-md-2">Reset</button>
                            <button type="submit" class="btn btn-primary">Simpan Kampanye</button>
                        </div>
                    </form>
                </div>
            </div>
        </main>
    </div>
</div>

<!-- TinyMCE Editor -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    // Initialize TinyMCE
    tinymce.init({
        selector: '#deskripsi',
        height: 400,
        menubar: false,
        plugins: [
            'advlist autolink lists link image charmap print preview anchor',
            'searchreplace visualblocks code fullscreen',
            'insertdatetime media table paste code help wordcount'
        ],
        toolbar: 'undo redo | formatselect | bold italic backcolor | \
                alignleft aligncenter alignright alignjustify | \
                bullist numlist outdent indent | removeformat | help'
    });
    
    // Image Preview
    const imageInput = document.querySelector('.image-upload');
    if (imageInput) {
        imageInput.addEventListener('change', function(event) {
            const preview = document.getElementById(this.dataset.preview);
            if (preview && this.files && this.files[0]) {
                const reader = new FileReader();
                reader.onload = function(e) {
                    preview.src = e.target.result;
                };
                reader.readAsDataURL(this.files[0]);
            }
        });
    }
    
    // Format Rupiah
    const rupiahInput = document.querySelector('.rupiah-input');
    if (rupiahInput) {
        rupiahInput.addEventListener('keyup', function(e) {
            // Skip for arrow keys
            if(e.key === 'ArrowUp' || e.key === 'ArrowDown' || e.key === 'ArrowLeft' || e.key === 'ArrowRight') {
                return;
            }
            
            // Remove all non-digit characters
            let value = this.value.replace(/\D/g, '');
            
            // Format the value
            if (value !== '') {
                value = parseInt(value, 10).toLocaleString('id-ID');
            }
            
            // Update the value
            this.value = value;
        });
        
        // Format initial value if exists
        if (rupiahInput.value !== '') {
            let value = rupiahInput.value.replace(/\D/g, '');
            if (value !== '') {
                rupiahInput.value = parseInt(value, 10).toLocaleString('id-ID');
            }
        }
        
        // On form submit, remove the formatting
        rupiahInput.form.addEventListener('submit', function() {
            rupiahInput.value = rupiahInput.value.replace(/\D/g, '');
        });
    }
});
</script>

<?php require_once '../../includes/footer.php'; ?>