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

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

// معالجة البحث
$searchTerm = isset($_GET['search']) ? sanitizeInput($_GET['search']) : '';
$categoryFilter = isset($_GET['category']) ? (int)$_GET['category'] : 0;
$statusFilter = isset($_GET['status']) ? sanitizeInput($_GET['status']) : 'all';

// استعلام قائمة المنخرطين
$query = "SELECT m.*, c.name as category_name 
          FROM members m 
          LEFT JOIN categories c ON m.category_id = c.id 
          WHERE 1=1";
$params = [];

// إضافة شروط البحث
if (!empty($searchTerm)) {
    $query .= " AND (m.first_name LIKE :search OR m.last_name LIKE :search OR m.phone LIKE :search)";
    $params[':search'] = "%$searchTerm%";
}

if ($categoryFilter > 0) {
    $query .= " AND m.category_id = :category_id";
    $params[':category_id'] = $categoryFilter;
}

if ($statusFilter === 'active') {
    // المنخرطين بالاشتراك الساري
    $query .= " AND EXISTS (SELECT 1 FROM subscriptions s WHERE s.member_id = m.id AND s.end_date >= CURRENT_DATE)";
} elseif ($statusFilter === 'expired') {
    // المنخرطين بالاشتراك المنتهي
    $query .= " AND NOT EXISTS (SELECT 1 FROM subscriptions s WHERE s.member_id = m.id AND s.end_date >= CURRENT_DATE)";
}

// ترتيب النتائج
$query .= " ORDER BY m.first_name, m.last_name";

// تنفيذ الاستعلام
$members = fetchAll($query, $params);

// الحصول على قائمة الفئات للفلتر
$categories = fetchAll("SELECT id, name FROM categories ORDER BY name");

// الحصول على إعدادات الجمعية
$settings = getAssociationSettings();
$logoPath = !empty($settings['logo']) ? SITE_URL . '/uploads/logo/' . $settings['logo'] : SITE_URL . '/assets/img/default-logo.png';

// عنوان الصفحة
$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-id-card me-2"></i> طباعة بطاقات العضوية</h1>
    <div>
        <button type="button" class="btn btn-primary" id="printAllBtn">
            <i class="fas fa-print"></i> طباعة جميع البطاقات
        </button>
    </div>
</div>

<!-- فلاتر البحث -->
<div class="card mb-4">
    <div class="card-body">
        <form method="get" action="" class="row g-3">
            <div class="col-md-4">
                <label for="search" class="form-label">بحث</label>
                <input type="text" class="form-control" id="search" name="search" value="<?php echo $searchTerm; ?>" placeholder="الاسم أو رقم الهاتف...">
            </div>
            <div class="col-md-3">
                <label for="category" class="form-label">الفئة</label>
                <select class="form-select" id="category" name="category">
                    <option value="0">جميع الفئات</option>
                    <?php foreach ($categories as $category): ?>
                        <option value="<?php echo $category['id']; ?>" <?php echo ($categoryFilter == $category['id']) ? 'selected' : ''; ?>>
                            <?php echo $category['name']; ?>
                        </option>
                    <?php endforeach; ?>
                </select>
            </div>
            <div class="col-md-3">
                <label for="status" class="form-label">حالة الاشتراك</label>
                <select class="form-select" id="status" name="status">
                    <option value="all" <?php echo ($statusFilter === 'all') ? 'selected' : ''; ?>>الكل</option>
                    <option value="active" <?php echo ($statusFilter === 'active') ? 'selected' : ''; ?>>ساري</option>
                    <option value="expired" <?php echo ($statusFilter === 'expired') ? 'selected' : ''; ?>>منتهي</option>
                </select>
            </div>
            <div class="col-md-2 d-flex align-items-end">
                <button type="submit" class="btn btn-primary w-100">
                    <i class="fas fa-search"></i> بحث
                </button>
            </div>
        </form>
    </div>
</div>

<!-- عرض البطاقات -->
<div class="card">
    <div class="card-body">
        <?php if (count($members) > 0): ?>
            <div class="row" id="cardsContainer">
                <?php foreach ($members as $member): 
                    // الحصول على بيانات الاشتراك
                    $query = "SELECT * FROM subscriptions WHERE member_id = :member_id ORDER BY end_date DESC LIMIT 1";
                    $subscription = fetchOne($query, [':member_id' => $member['id']]);
                    
                    // تحديد حالة الاشتراك
                    $subscriptionValid = isSubscriptionValid($member['id']);
                    $photoPath = !empty($member['photo']) 
                        ? SITE_URL . '/uploads/members/' . $member['photo'] 
                        : SITE_URL . '/assets/img/default-user.png';
                ?>
                <div class="col-md-4 mb-4">
                    <div class="card member-card-wrapper <?php echo $subscriptionValid ? 'border-success' : 'border-danger'; ?>">
                        <div class="card-header d-flex justify-content-between align-items-center <?php echo $subscriptionValid ? 'bg-success text-white' : 'bg-danger text-white'; ?>">
                            <span>
                                <i class="fas fa-id-card me-2"></i> بطاقة العضوية
                            </span>
                            <div>
                                <a href="<?php echo SITE_URL; ?>/members/card.php?id=<?php echo $member['id']; ?>" class="btn btn-sm btn-light" target="_blank" title="عرض البطاقة">
                                    <i class="fas fa-eye"></i>
                                </a>
                                <button type="button" class="btn btn-sm btn-light print-card-btn" data-id="<?php echo $member['id']; ?>" title="طباعة البطاقة">
                                    <i class="fas fa-print"></i>
                                </button>
                            </div>
                        </div>
                        <div class="card-body">
                            <div class="member-card">
                                <img src="<?php echo $logoPath; ?>" alt="شعار الجمعية" class="logo">
                                <img src="<?php echo $photoPath; ?>" alt="صورة المنخرط" class="member-photo">
                                
                                <h5 class="card-title"><?php echo $member['first_name'] . ' ' . $member['last_name']; ?></h5>
                                
                                <div class="member-info">
                                    <p><strong>رقم العضوية:</strong> <?php echo str_pad($member['id'], 5, '0', STR_PAD_LEFT); ?></p>
                                    <p><strong>الفئة:</strong> <?php echo $member['category_name']; ?></p>
                                    <p><strong>تاريخ الازدياد:</strong> <?php echo formatDate($member['birth_date']); ?></p>
                                    <?php if ($subscription): ?>
                                        <p><strong>تاريخ الانتهاء:</strong> <?php echo formatDate($subscription['end_date']); ?></p>
                                        <p><strong>الحالة:</strong> 
                                            <?php if ($subscriptionValid): ?>
                                                <span class="badge bg-success">ساري</span>
                                            <?php else: ?>
                                                <span class="badge bg-danger">منتهي</span>
                                            <?php endif; ?>
                                        </p>
                                    <?php else: ?>
                                        <p><strong>الحالة:</strong> <span class="badge bg-warning">لا يوجد اشتراك</span></p>
                                    <?php endif; ?>
                                </div>
                                
                                <div class="card-footer">
                                    <?php echo $settings['name'] ?? SITE_NAME; ?> | <?php echo $settings['phone'] ?? ''; ?>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <?php endforeach; ?>
            </div>
        <?php else: ?>
            <div class="alert alert-info">
                <i class="fas fa-info-circle me-2"></i> لا يوجد منخرطين مطابقين لمعايير البحث.
            </div>
        <?php endif; ?>
    </div>
</div>

<!-- نموذج الطباعة -->
<div id="printSection" style="display: none;"></div>

<style>
/* تنسيقات البطاقة */
.member-card-wrapper {
    transition: all 0.3s ease;
}

.member-card-wrapper:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}

.member-card {
    position: relative;
    padding: 20px;
    border-radius: 10px;
    background-color: #fff;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    text-align: center;
    overflow: hidden;
}

.member-card .logo {
    position: absolute;
    top: 10px;
    left: 10px;
    width: 60px;
    height: auto;
}

.member-card .member-photo {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
    margin: 0 auto 15px;
    border: 3px solid #007bff;
}

.member-card .card-title {
    margin-bottom: 15px;
    color: #007bff;
    font-weight: bold;
}

.member-card .member-info {
    text-align: right;
    margin-bottom: 15px;
}

.member-card .member-info p {
    margin-bottom: 5px;
    font-size: 14px;
}

.member-card .card-footer {
    background-color: #f8f9fa;
    padding: 10px;
    border-radius: 0 0 10px 10px;
    font-size: 12px;
    color: #6c757d;
    margin-top: 15px;
    margin-right: -20px;
    margin-left: -20px;
    margin-bottom: -20px;
}

/* تنسيقات الطباعة */
@media print {
    body * {
        visibility: hidden;
    }
    
    #printSection, #printSection * {
        visibility: visible;
    }
    
    #printSection {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
    }
    
    .member-card {
        page-break-inside: avoid;
        margin-bottom: 20px;
    }
}
</style>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // طباعة بطاقة واحدة
    const printCardBtns = document.querySelectorAll('.print-card-btn');
    printCardBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            const memberId = this.getAttribute('data-id');
            window.open('<?php echo SITE_URL; ?>/members/card.php?id=' + memberId, '_blank');
        });
    });
    
    // طباعة جميع البطاقات
    const printAllBtn = document.getElementById('printAllBtn');
    if (printAllBtn) {
        printAllBtn.addEventListener('click', function() {
            const printSection = document.getElementById('printSection');
            printSection.innerHTML = '';
            
            // نسخ جميع البطاقات إلى قسم الطباعة
            const cards = document.querySelectorAll('.member-card');
            cards.forEach(card => {
                const cardClone = card.cloneNode(true);
                const cardWrapper = document.createElement('div');
                cardWrapper.style.width = '100%';
                cardWrapper.style.maxWidth = '400px';
                cardWrapper.style.margin = '0 auto 20px';
                cardWrapper.appendChild(cardClone);
                printSection.appendChild(cardWrapper);
            });
            
            // طباعة
            window.print();
        });
    }
});
</script>

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