<?php
session_start();
require_once 'config/db.php';

if (!isset($_SESSION['user_id'])) {
    header('Location: login.php');
    exit();
}

$db = new Database();
$pdo = $db->getConnection();

// الحصول على بيانات المستخدم
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$_SESSION['user_id']]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);

// Vérifier si l'utilisateur est admin
$is_admin = isset($user['role']) && $user['role'] === 'admin';

// معالجة تحديث البيانات
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    try {
        // التحقق من طلب إعادة تعيين الإحصائيات
        if (isset($_POST['reset_stats'])) {
            if (!$is_admin) {
                throw new Exception("Vous n'avez pas les droits d'administrateur nécessaires");
            }
            
            // إعادة تعيين المبيعات
            $stmt = $pdo->prepare("DELETE FROM sales");
            $stmt->execute();
            
            // إعادة تعيين الديون
            $stmt = $pdo->prepare("UPDATE customers SET debt = 0");
            $stmt->execute();
            
            // إعادة تعيين المحددات التلقائية
            $stmt = $pdo->prepare("DELETE FROM sqlite_sequence WHERE name IN ('sales')");
            $stmt->execute();
            
            $_SESSION['message'] = "تم إعادة تعيين جميع الإحصائيات بنجاح";
            header("Location: profile.php");
            exit();
        }

        $username = $_POST['username'];
        $current_password = $_POST['current_password'];
        $new_password = $_POST['new_password'];
        $confirm_password = $_POST['confirm_password'];

        // التحقق من اسم المستخدم
        if ($username !== $user['username']) {
            $stmt = $pdo->prepare("SELECT COUNT(*) FROM users WHERE username = ? AND id != ?");
            $stmt->execute([$username, $_SESSION['user_id']]);
            if ($stmt->fetchColumn() > 0) {
                throw new Exception("اسم المستخدم مستخدم بالفعل");
            }
        }

        // التحقق من كلمة المرور الحالية
        if (!password_verify($current_password, $user['password'])) {
            throw new Exception("كلمة المرور الحالية غير صحيحة");
        }

        // تحديث البيانات
        if ($new_password) {
            if ($new_password !== $confirm_password) {
                throw new Exception("كلمة المرور الجديدة غير متطابقة");
            }
            if (strlen($new_password) < 6) {
                throw new Exception("كلمة المرور الجديدة يجب أن تكون 6 أحرف على الأقل");
            }
            $password_hash = password_hash($new_password, PASSWORD_DEFAULT);
            
            $stmt = $pdo->prepare("
                UPDATE users 
                SET username = ?, password = ?
                WHERE id = ?
            ");
            $stmt->execute([$username, $password_hash, $_SESSION['user_id']]);
        } else {
            $stmt = $pdo->prepare("
                UPDATE users 
                SET username = ?
                WHERE id = ?
            ");
            $stmt->execute([$username, $_SESSION['user_id']]);
        }

        $_SESSION['message'] = "تم تحديث البيانات بنجاح";
        header("Location: profile.php");
        exit();

    } catch (Exception $e) {
        $error = $e->getMessage();
    }
}
?>
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<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.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="assets/css/style.css" rel="stylesheet">
</head>
<body>
<?php include 'includes\header.php'; ?>

    <div class="container mt-4">
        <?php if (isset($_SESSION['message'])): ?>
            <div class="alert alert-success alert-dismissible fade show">
                <?php 
                echo htmlspecialchars($_SESSION['message']);
                unset($_SESSION['message']);
                ?>
                <button type="button" class="btn-close" data-bs-dismiss="alert"></button>
            </div>
        <?php endif; ?>

        <?php if (isset($error)): ?>
            <div class="alert alert-danger">
                <?php echo htmlspecialchars($error); ?>
            </div>
        <?php endif; ?>

        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header">
                        <h3 class="card-title">الملف الشخصي</h3>
                    </div>
                    <div class="card-body">
                        <form method="POST" class="needs-validation" novalidate>
                            <div class="mb-3">
                                <label for="username" class="form-label">اسم المستخدم</label>
                                <input type="text" class="form-control" id="username" name="username"
                                       value="<?php echo htmlspecialchars($user['username']); ?>" required>
                                <div class="invalid-feedback">
                                    يرجى إدخال اسم المستخدم
                                </div>
                            </div>

                            <div class="mb-3">
                                <label for="current_password" class="form-label">كلمة المرور الحالية</label>
                                <input type="password" class="form-control" id="current_password" 
                                       name="current_password" required>
                                <div class="invalid-feedback">
                                    يرجى إدخال كلمة المرور الحالية
                                </div>
                            </div>

                            <div class="mb-3">
                                <label for="new_password" class="form-label">كلمة المرور الجديدة (اختياري)</label>
                                <input type="password" class="form-control" id="new_password" 
                                       name="new_password" minlength="6">
                                <div class="form-text">
                                    اتركها فارغة إذا كنت لا تريد تغيير كلمة المرور
                                </div>
                            </div>

                            <div class="mb-3">
                                <label for="confirm_password" class="form-label">تأكيد كلمة المرور الجديدة</label>
                                <input type="password" class="form-control" id="confirm_password" 
                                       name="confirm_password">
                            </div>

                            <div class="d-grid gap-2">
                                <button type="submit" class="btn btn-primary mb-3">حفظ التغييرات</button>
                            </div>
                        </form>

                        <hr>
                        <div class="mt-4">
                            <h4>Réinitialisation des statistiques</h4>
                            <p class="text-danger">Attention: Cette action va supprimer tout l'historique des ventes et remettre à zéro toutes les dettes des clients.</p>
                            <form method="POST" onsubmit="return confirm('Êtes-vous sûr de vouloir réinitialiser toutes les statistiques? Cette action est irréversible.');">
                                <button type="submit" name="reset_stats" class="btn btn-danger">
                                    <i class="fa fa-refresh"></i> Réinitialiser les statistiques
                                </button>
                            </form>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
    <script>
        // التحقق من صحة النموذج
        (function() {
            'use strict';
            const forms = document.querySelectorAll('.needs-validation');
            Array.from(forms).forEach(form => {
                form.addEventListener('submit', event => {
                    if (!form.checkValidity()) {
                        event.preventDefault();
                        event.stopPropagation();
                    }
                    form.classList.add('was-validated');
                }, false);
            });
        })();

        // التحقق من تطابق كلمات المرور
        document.getElementById('confirm_password').addEventListener('input', function() {
            const newPassword = document.getElementById('new_password').value;
            const confirmPassword = this.value;
            
            if (newPassword && confirmPassword && newPassword !== confirmPassword) {
                this.setCustomValidity('كلمات المرور غير متطابقة');
            } else {
                this.setCustomValidity('');
            }
        });
    </script>
</body>
</html>
