<?php
// teacher/profile.php - پروفایل مدرس

session_start();
require_once '../config/database.php';
require_once '../includes/db.php';
require_once '../includes/auth.php';
require_once '../includes/functions.php';

if (!isLoggedIn()) {
    header('Location: ../login.php');
    exit;
}

$user = getCurrentUser();
if ($user['role_level'] != 6) {
    header('Location: ../admin/dashboard.php');
    exit;
}

$pageTitle = 'پروفایل من';
$pageSubtitle = 'اطلاعات شخصی و مالی';

$courses = getTeacherCourses($user['id']);
$transactions = getTeacherTransactions($user['id']);

$message = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $action = $_POST['action'] ?? '';
    
    if ($action == 'update_sheba') {
        $sheba_number = $_POST['sheba_number'] ?? '';
        $sheba_number = preg_replace('/[^A-Za-z0-9]/', '', $sheba_number);
        
        if (strlen($sheba_number) == 26) {
            if ($user['is_sheba_confirmed']) {
                $message = 'شماره شبا قبلاً تأیید شده و قابل تغییر نیست.';
            } else {
                if (updateTeacherSheba($user['id'], $sheba_number)) {
                    $message = 'شماره شبا با موفقیت ثبت شد و در انتظار تأیید مدیر است.';
                    $user = getCurrentUser();
                } else {
                    $message = 'خطا در ثبت شماره شبا.';
                }
            }
        } else {
            $message = 'شماره شبا نامعتبر است. باید ۲۶ کاراکتر باشد.';
        }
    } elseif ($action == 'update_mobile') {
        $mobile = $_POST['mobile'] ?? '';
        if (validateMobile($mobile)) {
            if (updateData('users', ['mobile' => $mobile], 'id = :id', ['id' => $user['id']])) {
                $message = 'شماره موبایل با موفقیت به‌روزرسانی شد.';
                $user = getCurrentUser();
            } else {
                $message = 'خطا در به‌روزرسانی شماره موبایل.';
            }
        } else {
            $message = 'شماره موبایل نامعتبر است.';
        }
    } elseif ($action == 'update_password') {
        $current_password = $_POST['current_password'] ?? '';
        $new_password = $_POST['new_password'] ?? '';
        $confirm_password = $_POST['confirm_password'] ?? '';
        
        $userData = fetchOne("SELECT password FROM users WHERE id = ?", [$user['id']]);
        $passwordValid = false;
        
        if (password_verify($current_password, $userData['password'])) {
            $passwordValid = true;
        }
        if (!$passwordValid && $current_password == $userData['password']) {
            $passwordValid = true;
        }
        
        if (!$passwordValid) {
            $message = 'رمز عبور فعلی اشتباه است.';
        } elseif (strlen($new_password) < 6) {
            $message = 'رمز عبور جدید باید حداقل ۶ کاراکتر باشد.';
        } elseif ($new_password != $confirm_password) {
            $message = 'رمز عبور جدید و تکرار آن مطابقت ندارند.';
        } else {
            $hashedPassword = password_hash($new_password, PASSWORD_DEFAULT);
            if (updateData('users', ['password' => $hashedPassword], 'id = :id', ['id' => $user['id']])) {
                $message = 'رمز عبور با موفقیت تغییر یافت.';
                $user = getCurrentUser();
            } else {
                $message = 'خطا در تغییر رمز عبور.';
            }
        }
    }
}

$content = 'profile-content.php';
require_once '../includes/layout.php';
?>