<?php
// auth.php
session_start();
require_once 'includes/db.php'; // استدعاء الاتصال بقاعدة البيانات

$error_msg = '';

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = trim($_POST['username']);
    $password = $_POST['password'];

    if (empty($username) || empty($password)) {
        $error_msg = "يرجى تعبئة جميع الحقول / Please fill all fields";
    } else {
        // البحث عن المستخدم
        $sql = "SELECT id, username, password_hash, role, full_name_ar, staff_category FROM users WHERE username = :username AND is_active = 1";
        
        if ($stmt = $pdo->prepare($sql)) {
            $stmt->bindParam(":username", $username, PDO::PARAM_STR);
            
            if ($stmt->execute()) {
                if ($stmt->rowCount() == 1) {
                    $row = $stmt->fetch();
                    $hashed_password = $row['password_hash'];
                    
                    // التحقق من كلمة المرور
                    if (password_verify($password, $hashed_password)) {
                        // كلمة المرور صحيحة - بدء الجلسة
                        $_SESSION["loggedin"] = true;
                        $_SESSION["id"] = $row['id'];
                        $_SESSION["username"] = $row['username'];
                        $_SESSION["role"] = $row['role'];
                        $_SESSION["fullname"] = $row['full_name_ar'];
                        $_SESSION["staff_category"] = $row['staff_category'];

                        // --- تسجيل الدخول في سجل النشاطات (Audit Log) ---
                        $ip_address = $_SERVER['REMOTE_ADDR'];
                        $audit_sql = "INSERT INTO audit_logs (user_id, action_type, details, ip_address) VALUES (:uid, 'login', 'User logged in successfully', :ip)";
                        $audit_stmt = $pdo->prepare($audit_sql);
                        $audit_stmt->execute([':uid' => $row['id'], ':ip' => $ip_address]);
                        // ------------------------------------------------

                        // التوجيه الذكي حسب الصلاحية (Smart Redirection)
                        switch ($row['role']) {
                            case 'super_admin':
                            case 'ceo':
                                header("location: pages/dashboard.php");
                                break;
                            case 'purchasing':
                                header("location: pages/purchasing_panel.php");
                                break;
                            default:
                                // للموظفين العاديين ومديري الفرق
                                header("location: pages/my_requests.php");
                                break;
                        }
                        exit;
                    } else {
                        $error_msg = "كلمة المرور غير صحيحة / Invalid Password";
                    }
                } else {
                    $error_msg = "اسم المستخدم غير موجود / Username not found";
                }
            } else {
                $error_msg = "حدث خطأ ما، يرجى المحاولة لاحقاً / Something went wrong";
            }
        }
        unset($stmt);
    }
    unset($pdo);
}
?>