<?php
// تفعيل عرض الأخطاء لغرض التطوير
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$pageTitle = 'إدارة المستشفى';
include '../../includes/header.php';

// التحقق من صلاحية المستخدم
checkLogin();
if (!hasPermission('view_company_data')) {
    $_SESSION['error_message'] = 'ليس لديك صلاحية لإدارة بيانات المستشفى.';
    header('Location: ../index.php');
    exit();
}

$db = getDB();
$errors = [];
$successMessage = '';
$companyData = null;

$action = $_GET['action'] ?? $_POST['action'] ?? 'list';
$company_id = $_GET['id'] ?? $_POST['company_id'] ?? null;

// دالة للتحقق من أن النص يحتوي على حروف وليس أرقاماً فقط وليست فارغة
function isValidInput($data) {
    if (empty(trim($data))) return false;
    // التحقق من وجود حرف واحد على الأقل (يدعم العربية والانجليزية)
    return preg_match('/[\p{L}]/u', $data);
}

// --- 1. معالجة الحذف ---
if (isset($_GET['delete']) && hasPermission('manage_companies')) {
    $company_id = (int)$_GET['delete'];
    try {
        $attachments = $db->select("SELECT file_path FROM `company_attachments` WHERE company_id = ?", [$company_id]);
        if (!empty($attachments)) {
            foreach ($attachments as $attachment) {
                if (file_exists($attachment['file_path'])) { unlink($attachment['file_path']); }
            }
        }
        $db->delete("DELETE FROM `company_attachments` WHERE company_id = ?", [$company_id]);
        $result = $db->delete("DELETE FROM `companies` WHERE id = ?", [$company_id]);
        if ($result) { $_SESSION['success_message'] = 'تم حذف المستشفى بنجاح!'; }
    } catch (Exception $e) { $_SESSION['error_message'] = 'حدث خطأ أثناء الحذف.'; }
    header('Location: index.php');
    exit();
}

// --- 2. معالجة الإضافة والتعديل ---
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if ($action === 'add' || $action === 'edit') {
        $company_name = trim($_POST['company_name']);
        $address = trim($_POST['address']);
        $contact_person = trim($_POST['contact_person']);

        // التحقق الصارم من البيانات
        if (!isValidInput($company_name)) $errors[] = 'اسم المستشفى يجب أن يحتوي على حروف ولا يمكن تركه فارغاً.';
        if (!isValidInput($address)) $errors[] = 'العنوان يجب أن يحتوي على حروف ولا يمكن تركه فارغاً.';
        if (!isValidInput($contact_person)) $errors[] = 'اسم الشخص المسؤول يجب أن يحتوي على حروف ولا يمكن تركه فارغاً.';

        if (empty($errors)) {
            try {
                $current_time = date('Y-m-d H:i:s');
                // تأكد من مسمى الجلسة في ملف login الخاص بك (قد يكون $_SESSION['id'] أو $_SESSION['user_id'])
                $session_user = $_SESSION['user_id'] ?? $_SESSION['id'] ?? 0;

                if ($action === 'add') {
                    $query = "INSERT INTO `companies` (company_name, address, contact_person, created_by, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?)";
                    $db->insert($query, [$company_name, $address, $contact_person, $session_user, $current_time, $current_time]);
                    $_SESSION['success_message'] = 'تم إضافة المستشفى بنجاح!';
                } else {
                    $query = "UPDATE `companies` SET company_name = ?, address = ?, contact_person = ?, updated_at = ? WHERE id = ?";
                    $db->update($query, [$company_name, $address, $contact_person, $current_time, $_POST['company_id']]);
                    $_SESSION['success_message'] = 'تم تعديل البيانات بنجاح!';
                }
                header('Location: index.php');
                exit();
            } catch (Exception $e) { $errors[] = 'خطأ في قاعدة البيانات: ' . $e->getMessage(); }
        }
    }
}

// --- 3. جلب بيانات للتعديل ---
if ($action === 'edit' && !empty($company_id)) {
    $res = $db->select("SELECT * FROM `companies` WHERE id = ?", [$company_id]);
    if (!empty($res)) { $companyData = $res[0]; $pageTitle = 'تعديل بيانات المستشفى'; }
}

// --- 4. جلب القائمة (مع الربط لجلب اسم الموظف) ---
if ($action === 'list') {
    $search_term = $_GET['search_term'] ?? '';
    $filter_alert = $_GET['filter'] ?? '';
    
    $query = "
        SELECT c.*, e.full_name AS creator_name,
               (SELECT renewal_date FROM company_attachments a WHERE a.company_id = c.id AND a.renewal_date IS NOT NULL AND a.renewal_date <= DATE_ADD(CURDATE(), INTERVAL 60 DAY) ORDER BY a.renewal_date ASC LIMIT 1) AS soon_renewal,
               (SELECT renewal_date FROM company_attachments a WHERE a.company_id = c.id AND a.renewal_date IS NOT NULL AND a.renewal_date < CURDATE() ORDER BY a.renewal_date ASC LIMIT 1) AS expired_renewal
        FROM `companies` c
        LEFT JOIN `employees` e ON c.created_by = e.user_id
        WHERE 1=1
    ";

    $params = [];
    if (!empty($search_term)) {
        $query .= " AND (c.company_name LIKE ? OR c.address LIKE ? OR c.contact_person LIKE ?)";
        $params = array_fill(0, 3, '%' . $search_term . '%');
    }
    if ($filter_alert === 'needs_renewal') {
        $query .= " AND (c.id IN (SELECT DISTINCT company_id FROM company_attachments WHERE renewal_date IS NOT NULL AND (renewal_date <= DATE_ADD(CURDATE(), INTERVAL 60 DAY) OR renewal_date < CURDATE())))";
    }
    $query .= " ORDER BY c.id DESC"; // عرض الأحدث أولاً
    $companies = $db->select($query, $params);
}

$successMessage = $_SESSION['success_message'] ?? ''; unset($_SESSION['success_message']);
$errorMessage = $_SESSION['error_message'] ?? ''; unset($_SESSION['error_message']);
if ($errorMessage) $errors[] = $errorMessage;
?>

<div class="content-area">
    <div class="page-header d-flex justify-content-between align-items-center mb-4">
        <div>
            <h2 class="page-title"><?= htmlspecialchars($pageTitle) ?></h2>
            <p class="text-muted">نظام إدارة سجلات المستشفيات</p>
        </div>
        <div>
            <?php if ($action === 'list'): ?>
                <a href="index.php?action=add" class="btn btn-primary"><i class="fas fa-plus me-2"></i>إضافة مستشفى</a>
            <?php else: ?>
                <a href="index.php" class="btn btn-secondary"><i class="fas fa-arrow-left me-2"></i>العودة</a>
            <?php endif; ?>
        </div>
    </div>

    <?php if ($successMessage): ?> <div class="alert alert-success shadow-sm"><?= htmlspecialchars($successMessage) ?></div> <?php endif; ?>
    <?php if ($errors): ?> <div class="alert alert-danger shadow-sm"><ul><?php foreach($errors as $e): ?><li><?= htmlspecialchars($e) ?></li><?php endforeach; ?></ul></div> <?php endif; ?>

    <?php if ($action === 'list'): ?>
        <div class="card shadow-sm border-0 mb-4">
            <div class="card-body">
                <form action="index.php" method="GET" class="row g-2">
                    <div class="col-md-6"><input type="search" name="search_term" class="form-control" placeholder="بحث..." value="<?= htmlspecialchars($search_term) ?>"></div>
                    <div class="col-md-2"><button type="submit" class="btn btn-primary w-100">بحث</button></div>
                    <div class="col-md-4 text-end">
                        <a href="index.php?filter=needs_renewal" class="btn btn-warning"><i class="fas fa-bell"></i> التنبيهات</a>
                        <a href="index.php" class="btn btn-outline-info">الكل</a>
                    </div>
                </form>
            </div>
        </div>

        <div class="card shadow-sm border-0">
            <div class="card-body p-0">
                <div class="table-responsive">
                    <table class="table table-hover align-middle mb-0">
                        <thead class="table-light">
                            <tr>
                                <th>اسم المستشفى</th>
                                <th>العنوان</th>
                                <th>المسؤول</th>
                                <th>بواسطة (الرقم - الاسم)</th>
                                <th>تاريخ الإنشاء</th>
                                <th class="text-center">الإجراءات</th>
                            </tr>
                        </thead>
                        <tbody>
                            <?php if (!empty($companies)): foreach ($companies as $company): 
                                $row_class = $company['expired_renewal'] ? 'table-danger' : ($company['soon_renewal'] ? 'table-warning' : '');
                            ?>
                            <tr class="<?= $row_class ?>">
                                <td class="fw-bold"><?= htmlspecialchars($company['company_name']) ?></td>
                                <td><?= htmlspecialchars($company['address']) ?></td>
                                <td><?= htmlspecialchars($company['contact_person']) ?></td>
                                <td>
                                    <span class="badge bg-dark">#<?= htmlspecialchars($company['created_by']) ?></span>
                                    <span class="ms-1 text-primary fw-bold"><?= htmlspecialchars($company['creator_name'] ?? 'غير معروف') ?></span>
                                </td>
                                <td class="small text-muted"><?= date('Y-m-d', strtotime($company['created_at'])) ?></td>
                                <td class="text-center">
                                    <div class="btn-group">
                                        <a href="manage_attachments.php?company_id=<?= $company['id'] ?>" class="btn btn-sm btn-outline-info"><i class="fas fa-paperclip"></i></a>
                                        <?php if (hasPermission('manage_companies')): ?>
                                            <a href="index.php?action=edit&id=<?= $company['id'] ?>" class="btn btn-sm btn-outline-primary"><i class="fas fa-edit"></i></a>
                                            <a href="?delete=<?= $company['id'] ?>" class="btn btn-sm btn-outline-danger" onclick="return confirm('حذف؟')"><i class="fas fa-trash"></i></a>
                                        <?php endif; ?>
                                    </div>
                                </td>
                            </tr>
                            <?php endforeach; else: ?>
                            <tr><td colspan="6" class="text-center py-4">لا توجد سجلات.</td></tr>
                            <?php endif; ?>
                        </tbody>
                    </table>
                </div>
            </div>
        </div>

    <?php elseif ($action === 'add' || $action === 'edit'): ?>
        <div class="card shadow-sm border-0">
            <div class="card-body">
                <form action="index.php" method="POST" class="row g-3">
                    <input type="hidden" name="action" value="<?= $action ?>">
                    <?php if ($action === 'edit'): ?><input type="hidden" name="company_id" value="<?= $companyData['id'] ?>"><?php endif; ?>
                    
                    <div class="col-md-6">
                        <label class="form-label fw-bold">اسم المستشفى (نص إجباري)</label>
                        <input type="text" class="form-control" name="company_name" 
                               value="<?= htmlspecialchars($companyData['company_name'] ?? '') ?>" 
                               required 
                               pattern=".*\p{L}.*" title="يجب أن يحتوي على حروف">
                    </div>
                    <div class="col-md-6">
                        <label class="form-label fw-bold">العنوان (نص إجباري)</label>
                        <input type="text" class="form-control" name="address" 
                               value="<?= htmlspecialchars($companyData['address'] ?? '') ?>" 
                               required 
                               pattern=".*\p{L}.*" title="يجب أن يحتوي على حروف">
                    </div>
                    <div class="col-md-6">
                        <label class="form-label fw-bold">اسم الشخص المسؤول (نص إجباري)</label>
                        <input type="text" class="form-control" name="contact_person" 
                               value="<?= htmlspecialchars($companyData['contact_person'] ?? '') ?>" 
                               required 
                               pattern=".*\p{L}.*" title="يجب أن يحتوي على حروف">
                    </div>
                    <div class="col-12 text-end mt-4">
                        <hr>
                        <button type="submit" class="btn btn-success px-5"><i class="fas fa-save me-2"></i>حفظ</button>
                    </div>
                </form>
            </div>
        </div>
    <?php endif; ?>
</div>

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