<?php
// admin/teacher-edit.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: ../teacher/profile.php');
    exit;
}

$id = $_GET['id'] ?? 0;
$action = $_GET['action'] ?? 'edit';

$pageTitle = $action == 'create' ? 'افزودن مدرس جدید' : 'ویرایش مدرس';
$pageSubtitle = $action == 'create' ? 'ثبت اطلاعات مدرس جدید' : 'ویرایش اطلاعات مدرس';

$teacher = null;
if ($id > 0) {
    $teacher = fetchOne("SELECT * FROM users WHERE id = ?", [$id]);
}

$canEdit = ($user['role_level'] == 1 || $user['role_level'] == 2 || ($user['role_level'] == 4 && $teacher));
if (!$canEdit && $action != 'create') {
    header('Location: teachers.php');
    exit;
}

$roles = getAllRoles();

$message = '';
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $name = $_POST['name'] ?? '';
    $family = $_POST['family'] ?? '';
    $national_code = $_POST['national_code'] ?? '';
    $mobile = $_POST['mobile'] ?? '';
    $role_id = $_POST['role_id'] ?? 0;
    $sheba_number = $_POST['sheba_number'] ?? '';
    $degree = $_POST['degree'] ?? 0;
    $password = $_POST['password'] ?? '';
    
    $errors = [];
    if (empty($name)) $errors[] = 'نام را وارد کنید';
    if (empty($family)) $errors[] = 'نام‌خانوادگی را وارد کنید';
    if (empty($national_code) || !preg_match('/^\d{10}$/', $national_code)) $errors[] = 'کد ملی معتبر وارد کنید';
    if (empty($mobile) || !preg_match('/^09\d{9}$/', $mobile)) $errors[] = 'شماره موبایل معتبر وارد کنید';
    
    if (empty($errors)) {
        $updateData = [
            'name' => $name,
            'family' => $family,
            'national_code' => $national_code,
            'mobile' => $mobile,
            'degree' => $degree ?: 2
        ];
        
        if ($user['role_level'] == 1 && $role_id > 0) $updateData['role_id'] = $role_id;
        if (in_array($user['role_level'], [1,2,5])) $updateData['sheba_number'] = $sheba_number;
        
        // ===== ذخیره رمز با password_hash =====
        if ($action == 'create') {
            $updateData['role_id'] = $role_id ?: 6;
            // رمز پیش‌فرض: کد ملی
            $updateData['password'] = password_hash($national_code, PASSWORD_DEFAULT);
            $updateData['is_active'] = 1;
            $result = insertData('users', $updateData);
            if ($result) {
                $message = 'مدرس با موفقیت ایجاد شد.';
                header('Location: teachers.php');
                exit;
            } else {
                $message = 'خطا در ایجاد مدرس.';
            }
        } else {
            // اگر رمز جدید وارد شده باشد
            if (!empty($password)) {
                $updateData['password'] = password_hash($password, PASSWORD_DEFAULT);
            }
            $result = updateData('users', $updateData, 'id = :id', ['id' => $id]);
            $message = ($result !== false) ? 'اطلاعات با موفقیت به‌روزرسانی شد.' : 'خطا در به‌روزرسانی اطلاعات.';
            $teacher = fetchOne("SELECT * FROM users WHERE id = ?", [$id]);
        }
    } else {
        $message = implode('<br>', $errors);
    }
}

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