<?php
require_once 'config/init.php';
require_once 'includes/auth.php';
require_once 'includes/protection.php';
requireAuth();
requireProtectionPassword();
$db = getDB();
$current_user_id = $_SESSION['user_id'];
$error = null;
$success = null;

// Handle form submissions
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $action = $_POST['action'] ?? '';
    
    if ($action === 'change_password') {
        $current_password = $_POST['current_password'] ?? '';
        $new_password = $_POST['new_password'] ?? '';
        $confirm_password = $_POST['confirm_password'] ?? '';
        
        // Get current user's password
        $stmt = $db->prepare('SELECT password FROM users WHERE id = :id');
        $stmt->bindValue(':id', $current_user_id);
        $result = $stmt->execute()->fetchArray();
        
        if (!$result || !password_verify($current_password, $result['password'])) {
            $error = 'كلمة المرور الحالية غير صحيحة';
        } elseif ($new_password !== $confirm_password) {
            $error = 'كلمة المرور الجديدة غير متطابقة';
        } elseif (strlen($new_password) < 8) {
            $error = 'يجب أن تكون كلمة المرور الجديدة 8 أحرف على الأقل';
        } else {
            $stmt = $db->prepare('UPDATE users SET password = :password WHERE id = :id');
            $stmt->bindValue(':password', password_hash($new_password, PASSWORD_DEFAULT));
            $stmt->bindValue(':id', $current_user_id);
            
            try {
                $stmt->execute();
                logActivity('تغيير كلمة المرور');
                $success = 'تم تغيير كلمة المرور بنجاح';
            } catch (Exception $e) {
                $error = 'حدث خطأ أثناء تغيير كلمة المرور';
            }
        }
    } elseif ($action === 'add_user') {
        $username = $_POST['username'] ?? '';
        $password = $_POST['password'] ?? '';
        $confirm_password = $_POST['confirm_password'] ?? '';
        
        if ($password !== $confirm_password) {
            $error = 'كلمة المرور غير متطابقة';
        } elseif (strlen($password) < 8) {
            $error = 'يجب أن تكون كلمة المرور 8 أحرف على الأقل';
        } else {
            $stmt = $db->prepare('INSERT INTO users (username, password) VALUES (:username, :password)');
            $stmt->bindValue(':username', $username);
            $stmt->bindValue(':password', password_hash($password, PASSWORD_DEFAULT));
            
            try {
                $stmt->execute();
                logActivity('إضافة مستخدم جديد', "المستخدم: $username");
                $success = 'تم إضافة المستخدم بنجاح';
            } catch (Exception $e) {
                $error = 'اسم المستخدم موجود مسبقاً';
            }
        }
    } elseif ($action === 'delete_user') {
        $user_id = $_POST['user_id'] ?? 0;
        
        if ($user_id == $current_user_id) {
            $error = 'لا يمكن حذف المستخدم الحالي';
        } else {
            $stmt = $db->prepare('DELETE FROM users WHERE id = :id');
            $stmt->bindValue(':id', $user_id);
            
            try {
                $stmt->execute();
                logActivity('حذف مستخدم', "رقم المستخدم: $user_id");
                $success = 'تم حذف المستخدم بنجاح';
            } catch (Exception $e) {
                $error = 'حدث خطأ أثناء حذف المستخدم';
            }
        }
    }
}

// Get all users
$users_result = $db->query('SELECT id, username, created_at FROM users ORDER BY username');
$users = [];
while ($row = $users_result->fetchArray(SQLITE3_ASSOC)) {
    $users[] = $row;
}
?>
<!DOCTYPE html>
<html dir="rtl" lang="ar">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>إدارة المستخدمين - نظام إدارة جمعيات توزيع الماء</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons/font/bootstrap-icons.css" rel="stylesheet">
</head>
<body>
    <div class="container-fluid">
        <div class="row">
            <?php include 'includes/sidebar.php'; ?>

            <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">إدارة المستخدمين</h1>
                    <button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#addUserModal">
                        <i class="bi bi-person-plus"></i> إضافة مستخدم جديد
                    </button>
                </div>

                <?php if ($success): ?>
                    <div class="alert alert-success alert-dismissible fade show" role="alert">
                        <?php echo htmlspecialchars($success); ?>
                        <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                    </div>
                <?php endif; ?>

                <?php if ($error): ?>
                    <div class="alert alert-danger alert-dismissible fade show" role="alert">
                        <?php echo htmlspecialchars($error); ?>
                        <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
                    </div>
                <?php endif; ?>

                <div class="row">
                    <!-- Change Password Card -->
                    <div class="col-md-6 mb-4">
                        <div class="card">
                            <div class="card-header">
                                <h5 class="card-title mb-0">تغيير كلمة المرور</h5>
                            </div>
                            <div class="card-body">
                                <form method="POST" id="changePasswordForm">
                                    <input type="hidden" name="action" value="change_password">
                                    
                                    <div class="mb-3">
                                        <label class="form-label">كلمة المرور الحالية</label>
                                        <input type="password" class="form-control" name="current_password" required>
                                    </div>
                                    
                                    <div class="mb-3">
                                        <label class="form-label">كلمة المرور الجديدة</label>
                                        <input type="password" class="form-control" name="new_password" 
                                               minlength="8" required>
                                    </div>
                                    
                                    <div class="mb-3">
                                        <label class="form-label">تأكيد كلمة المرور الجديدة</label>
                                        <input type="password" class="form-control" name="confirm_password" 
                                               minlength="8" required>
                                    </div>
                                    
                                    <button type="submit" class="btn btn-primary">تغيير كلمة المرور</button>
                                </form>
                            </div>
                        </div>
                    </div>

                    <!-- Users List Card -->
                    <div class="col-md-6 mb-4">
                        <div class="card">
                            <div class="card-header">
                                <h5 class="card-title mb-0">قائمة المستخدمين</h5>
                            </div>
                            <div class="card-body">
                                <div class="table-responsive">
                                    <table class="table table-striped">
                                        <thead>
                                            <tr>
                                                <th>اسم المستخدم</th>
                                                <th>تاريخ الإنشاء</th>
                                                <th>الإجراءات</th>
                                            </tr>
                                        </thead>
                                        <tbody>
                                            <?php foreach ($users as $user): ?>
                                                <tr>
                                                    <td><?php echo htmlspecialchars($user['username']); ?></td>
                                                    <td><?php echo date('Y-m-d', strtotime($user['created_at'])); ?></td>
                                                    <td>
                                                        <?php if ($user['id'] != $current_user_id): ?>
                                                            <form method="POST" style="display: inline;" 
                                                                  onsubmit="return confirm('هل أنت متأكد من حذف هذا المستخدم؟')">
                                                                <input type="hidden" name="action" value="delete_user">
                                                                <input type="hidden" name="user_id" value="<?php echo $user['id']; ?>">
                                                                <button type="submit" class="btn btn-sm btn-danger">
                                                                    <i class="bi bi-trash"></i>
                                                                </button>
                                                            </form>
                                                        <?php endif; ?>
                                                    </td>
                                                </tr>
                                            <?php endforeach; ?>
                                        </tbody>
                                    </table>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </main>
        </div>
    </div>

    <!-- Add User Modal -->
    <div class="modal fade" id="addUserModal" tabindex="-1">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title">إضافة مستخدم جديد</h5>
                    <button type="button" class="btn-close" data-bs-dismiss="modal"></button>
                </div>
                <form method="POST" id="addUserForm">
                    <div class="modal-body">
                        <input type="hidden" name="action" value="add_user">
                        
                        <div class="mb-3">
                            <label class="form-label">اسم المستخدم</label>
                            <input type="text" class="form-control" name="username" required>
                        </div>
                        
                        <div class="mb-3">
                            <label class="form-label">كلمة المرور</label>
                            <input type="password" class="form-control" name="password" minlength="8" required>
                        </div>
                        
                        <div class="mb-3">
                            <label class="form-label">تأكيد كلمة المرور</label>
                            <input type="password" class="form-control" name="confirm_password" minlength="8" required>
                        </div>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">إلغاء</button>
                        <button type="submit" class="btn btn-primary">إضافة</button>
                    </div>
                </form>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
    <script>
        // Form validation
        document.getElementById('changePasswordForm').addEventListener('submit', function(e) {
            const newPassword = this.querySelector('[name="new_password"]').value;
            const confirmPassword = this.querySelector('[name="confirm_password"]').value;
            
            if (newPassword !== confirmPassword) {
                alert('كلمة المرور الجديدة غير متطابقة');
                e.preventDefault();
            }
        });

        document.getElementById('addUserForm').addEventListener('submit', function(e) {
            const password = this.querySelector('[name="password"]').value;
            const confirmPassword = this.querySelector('[name="confirm_password"]').value;
            
            if (password !== confirmPassword) {
                alert('كلمة المرور غير متطابقة');
                e.preventDefault();
            }
        });
    </script>
</body>
</html>
