<?php
// Check if user is already logged in
require_once '../includes/functions.php';
require_once '../includes/email_functions.php';
if (isLoggedIn()) {
    redirect(SITE_URL . '/index.php');
}

require_once '../includes/header.php';

$message = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $username = sanitizeInput($_POST['username']);
    $email = sanitizeInput($_POST['email']);
    $password = $_POST['password'];
    $confirm_password = $_POST['confirm_password'];
    
    // Validation
    if (empty($username) || empty($email) || empty($password)) {
        $message = '<div class="message error">جميع الحقول مطلوبة.</div>';
    } elseif ($password !== $confirm_password) {
        $message = '<div class="message error">كلمات المرور غير متطابقة.</div>';
    } elseif (strlen($password) < 6) {
        $message = '<div class="message error">يجب أن تكون كلمة المرور مكونة من 6 أحرف على الأقل.</div>';
    } else {
        // Check if user already exists
        $existing_user = getUserByEmail($pdo, $email);
        
        if ($existing_user) {
            $message = '<div class="message error">البريد الإلكتروني مسجل بالفعل.</div>';
        } else {
            // Register new user with default 'user' role
            $hashed_password = hashPassword($password);
            
            try {
                $stmt = $pdo->prepare("INSERT INTO users (username, email, password, role) VALUES (?, ?, ?, 'user')");
                $stmt->execute([$username, $email, $hashed_password]);
                
                // Get the newly created user
                $user = getUserByEmail($pdo, $email);
                
                // Send welcome email
                sendWelcomeEmail($pdo, $user['id']);
                
                // Set session variables
                $_SESSION['user_id'] = $user['id'];
                $_SESSION['username'] = $user['username'];
                $_SESSION['role'] = $user['role']; // Store user role in session
                
                // Redirect to intended page or home
                $redirect_url = $_SESSION['redirect_after_login'] ?? SITE_URL . '/index.php';
                unset($_SESSION['redirect_after_login']);
                
                redirect($redirect_url);
            } catch (PDOException $e) {
                $message = '<div class="message error">فشل التسجيل. يرجى المحاولة مرة أخرى.</div>';
            }
        }
    }
}
?>

<div class="container">
    <div class="form-container">
        <h2 style="text-align: center; margin-bottom: 30px;">تسجيل</h2>
        
        <?php echo $message; ?>
        
        <form method="POST" action="">
            <div class="form-group">
                <label for="username">اسم المستخدم</label>
                <input type="text" id="username" name="username" required>
            </div>
            
            <div class="form-group">
                <label for="email">البريد الإلكتروني</label>
                <input type="email" id="email" name="email" required>
            </div>
            
            <div class="form-group">
                <label for="password">كلمة المرور</label>
                <input type="password" id="password" name="password" required>
            </div>
            
            <div class="form-group">
                <label for="confirm_password">تأكيد كلمة المرور</label>
                <input type="password" id="confirm_password" name="confirm_password" required>
            </div>
            
            <button type="submit" class="btn btn-primary btn-large btn-block">تسجيل</button>
        </form>
        
        <p style="text-align: center; margin-top: 20px;">
            لديك حساب بالفعل؟ <a href="<?php echo SITE_URL; ?>/auth/login.php">تسجيل الدخول هنا</a>
        </p>
    </div>
</div>

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