<?php
require_once '../config.php';

// التحقق من تسجيل الدخول
requireLogin();

// التحقق من الصلاحيات
requirePermission('admin');

// الحصول على المنخرطين الذين تنتهي اشتراكاتهم قريبًا
$daysThreshold = isset($_GET['days']) ? (int) sanitizeInput($_GET['days']) : 30;
$expiringSubscriptions = getExpiringSubscriptions($daysThreshold);

// تتبع الإشعارات المرسلة (في حالة تم التنفيذ)
$notificationsSent = 0;
$notificationsError = 0;

// إرسال إشعارات متعددة
if (isset($_POST['send_notifications']) && !empty($_POST['member_ids'])) {
    $memberIds = $_POST['member_ids'];
    $notificationSubject = sanitizeInput($_POST['notification_subject']);
    $notificationMessage = sanitizeInput($_POST['notification_message']);
    
    // إرسال إشعار لكل منخرط تم تحديده
    foreach ($memberIds as $memberId) {
        // الحصول على بيانات المنخرط
        $member = fetchOne("SELECT * FROM members WHERE id = :id", [':id' => $memberId]);
        
        if ($member) {
            // في الإصدار الحقيقي، هنا يتم إرسال البريد الإلكتروني أو الرسالة النصية
            // تسجيل الإشعار في قاعدة البيانات
            $data = [
                ':member_id' => $memberId,
                ':subject' => $notificationSubject,
                ':message' => str_replace('{member_name}', $member['first_name'] . ' ' . $member['last_name'], $notificationMessage),
                ':notification_type' => 'subscription_expiry',
                ':created_by' => $_SESSION['user_id']
            ];
            
            try {
                $query = "INSERT INTO notifications (member_id, subject, message, notification_type, created_by, created_at) 
                          VALUES (:member_id, :subject, :message, :notification_type, :created_by, CURRENT_TIMESTAMP)";
                $result = insert($query, $data);
                
                if ($result) {
                    $notificationsSent++;
                } else {
                    $notificationsError++;
                }
            } catch (Exception $e) {
                $notificationsError++;
            }
        }
    }
    
    // عرض رسالة نجاح
    if ($notificationsSent > 0) {
        setAlert('success', "تم إرسال $notificationsSent إشعار بنجاح" . ($notificationsError > 0 ? " وفشل إرسال $notificationsError إشعار" : ""));
    } else {
        setAlert('danger', 'فشل إرسال الإشعارات');
    }
}

// عنوان الصفحة
$pageTitle = 'الإشعارات والتنبيهات';

// تضمين ملف الهيدر
include '../includes/header.php';
?>

<div class="d-flex justify-content-between align-items-center mb-4">
    <h1 class="h3 mb-0"><i class="fas fa-bell me-2"></i> إشعارات تجديد الاشتراكات</h1>
    <div>
        <a href="<?php echo SITE_URL; ?>/index.php" class="btn btn-secondary">
            <i class="fas fa-arrow-right"></i> العودة إلى لوحة التحكم
        </a>
    </div>
</div>

<?php displayAlert(); ?>

<!-- فلتر البحث -->
<div class="card mb-4">
    <div class="card-body">
        <form action="" method="get" class="row g-3">
            <div class="col-md-6">
                <label for="days" class="form-label">عرض الاشتراكات التي تنتهي خلال</label>
                <div class="input-group">
                    <input type="number" class="form-control" id="days" name="days" value="<?php echo $daysThreshold; ?>" min="1" max="365">
                    <span class="input-group-text">يوم</span>
                    <button type="submit" class="btn btn-primary">
                        <i class="fas fa-filter"></i> تصفية
                    </button>
                </div>
            </div>
        </form>
    </div>
</div>

<?php if (count($expiringSubscriptions) > 0): ?>

<!-- نموذج إرسال الإشعارات -->
<div class="card mb-4">
    <div class="card-header bg-white">
        <i class="fas fa-paper-plane me-2"></i> إرسال إشعارات للمنخرطين
    </div>
    <div class="card-body">
        <form action="" method="post" id="notification-form">
            <div class="mb-3">
                <label for="notification_subject" class="form-label">عنوان الإشعار</label>
                <input type="text" class="form-control" id="notification_subject" name="notification_subject" value="تذكير بتجديد الاشتراك" required>
            </div>
            <div class="mb-3">
                <label for="notification_message" class="form-label">نص الإشعار</label>
                <textarea class="form-control" id="notification_message" name="notification_message" rows="3" required>عزيزي {member_name}،
نود تذكيرك بأن اشتراكك في الجمعية سينتهي قريباً. الرجاء التواصل مع الإدارة لتجديد الاشتراك والاستمرار في الاستفادة من خدمات الجمعية.

مع تحيات إدارة الجمعية</textarea>
                <div class="form-text">استخدم {member_name} ليتم استبداله باسم المنخرط</div>
            </div>
            <div class="d-flex justify-content-between align-items-center">
                <div class="form-check">
                    <input class="form-check-input" type="checkbox" id="select-all">
                    <label class="form-check-label" for="select-all">تحديد الكل</label>
                </div>
                <button type="submit" name="send_notifications" class="btn btn-primary" id="send-button" disabled>
                    <i class="fas fa-paper-plane me-1"></i> إرسال الإشعارات
                </button>
            </div>
        </form>
    </div>
</div>

<!-- قائمة المنخرطين -->
<div class="card">
    <div class="card-header bg-white">
        <i class="fas fa-users me-2"></i> المنخرطين الذين تنتهي اشتراكاتهم قريبًا (<?php echo count($expiringSubscriptions); ?>)
    </div>
    <div class="card-body">
        <div class="table-responsive">
            <table class="table table-striped table-hover">
                <thead>
                    <tr>
                        <th width="40">
                            <div class="form-check">
                                <input class="form-check-input invisible" type="checkbox" disabled>
                            </div>
                        </th>
                        <th>الاسم الكامل</th>
                        <th>رقم الهاتف</th>
                        <th>البريد الإلكتروني</th>
                        <th>الفئة</th>
                        <th>تاريخ انتهاء الاشتراك</th>
                        <th>المدة المتبقية</th>
                        <th>الإجراءات</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($expiringSubscriptions as $index => $member): ?>
                        <tr class="<?php echo (strtotime($member['end_date']) < time()) ? 'table-danger' : ((strtotime($member['end_date']) - time()) / (60 * 60 * 24) <= 7 ? 'table-warning' : ''); ?>">
                            <td>
                                <div class="form-check">
                                    <input class="form-check-input member-checkbox" type="checkbox" name="member_ids[]" value="<?php echo $member['member_id']; ?>" form="notification-form">
                                </div>
                            </td>
                            <td><?php echo $member['first_name'] . ' ' . $member['last_name']; ?></td>
                            <td><?php echo $member['phone']; ?></td>
                            <td><?php echo $member['email']; ?></td>
                            <td><?php echo $member['category_name']; ?></td>
                            <td><?php echo formatDate($member['end_date']); ?></td>
                            <td>
                                <?php
                                $daysLeft = floor((strtotime($member['end_date']) - time()) / (60 * 60 * 24));
                                if ($daysLeft < 0) {
                                    echo "<span class='text-danger'>منتهي منذ " . abs($daysLeft) . " يوم</span>";
                                } else {
                                    echo $daysLeft . " يوم";
                                }
                                ?>
                            </td>
                            <td>
                                <a href="<?php echo SITE_URL; ?>/members/view.php?id=<?php echo $member['member_id']; ?>" class="btn btn-sm btn-info" title="عرض">
                                    <i class="fas fa-eye"></i>
                                </a>
                                <a href="<?php echo SITE_URL; ?>/members/renew.php?id=<?php echo $member['member_id']; ?>" class="btn btn-sm btn-success" title="تجديد الاشتراك">
                                    <i class="fas fa-sync-alt"></i>
                                </a>
                            </td>
                        </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // تحديد الكل / إلغاء تحديد الكل
    document.getElementById('select-all').addEventListener('change', function() {
        var checkboxes = document.getElementsByClassName('member-checkbox');
        for (var i = 0; i < checkboxes.length; i++) {
            checkboxes[i].checked = this.checked;
        }
        updateSendButton();
    });
    
    // تفعيل أو تعطيل زر الإرسال
    var checkboxes = document.getElementsByClassName('member-checkbox');
    for (var i = 0; i < checkboxes.length; i++) {
        checkboxes[i].addEventListener('change', updateSendButton);
    }
    
    function updateSendButton() {
        var checkedCount = document.querySelectorAll('.member-checkbox:checked').length;
        document.getElementById('send-button').disabled = checkedCount === 0;
    }
});
</script>

<?php else: ?>
<div class="alert alert-info">
    <i class="fas fa-info-circle me-2"></i> لا توجد اشتراكات تنتهي خلال <?php echo $daysThreshold; ?> يوم القادمة.
</div>
<?php endif; ?>

<?php
// تضمين ملف الفوتر
include '../includes/footer.php';
?>
