<?php
// test-shamsi-to-miladi2.php - تست با نمایش خطاها

require_once 'config/database.php';
require_once 'includes/db.php';
require_once 'includes/functions.php';

echo "<h2>🧪 تست تبدیل شمسی به میلادی (نسخه ۲)</h2>";

// ===== تست ۱: تبدیل 1404/07/01 =====
$shamsi = '1404/07/01';
$miladi = shamsiToMiladi($shamsi);

echo "ورودی شمسی: $shamsi<br>";
echo "خروجی میلادی: " . ($miladi ? $miladi : 'null') . "<br>";

// ===== تست ۲: بررسی وجود کاربر و ترم =====
echo "<h3>📋 بررسی دیتابیس:</h3>";

// بررسی وجود کاربر
$user = fetchOne("SELECT id FROM users WHERE id = 1");
echo "کاربر با ID=1: " . ($user ? "✅ وجود دارد (ID: {$user['id']})" : "❌ وجود ندارد") . "<br>";

// بررسی وجود ترم
$term = fetchOne("SELECT id FROM terms WHERE id = 1");
echo "ترم با ID=1: " . ($term ? "✅ وجود دارد (ID: {$term['id']})" : "❌ وجود ندارد") . "<br>";

// ===== تست ۳: درج در دیتابیس با مقادیر معتبر =====
echo "<h3>📅 تست درج در دیتابیس:</h3>";

// پیدا کردن یک کاربر معتبر
$validUser = fetchOne("SELECT id FROM users WHERE role_id = (SELECT id FROM roles WHERE level = 6) LIMIT 1");
if (!$validUser) {
    $validUser = fetchOne("SELECT id FROM users LIMIT 1");
}

// پیدا کردن یک ترم معتبر
$validTerm = fetchOne("SELECT id FROM terms LIMIT 1");

if ($validUser && $validTerm) {
    $testShamsi = '1404/07/01';
    $testMiladi = shamsiToMiladi($testShamsi);
    
    echo "تاریخ شمسی: $testShamsi<br>";
    echo "تاریخ میلادی: $testMiladi<br>";
    echo "کاربر معتبر: ID={$validUser['id']}<br>";
    echo "ترم معتبر: ID={$validTerm['id']}<br>";
    
    // درج در دیتابیس
    try {
        $data = [
            'teacher_id' => $validUser['id'],
            'amount' => 1000,
            'payment_date' => $testMiladi,
            'term_id' => $validTerm['id'],
            'description' => 'تست تبدیل تاریخ',
            'source' => 'manual',
            'created_by' => 1
        ];
        
        $result = insertData('transactions', $data);
        
        if ($result) {
            echo "✅ درج در دیتابیس موفق بود. ID: $result<br>";
            
            // خواندن از دیتابیس
            $saved = fetchOne("SELECT payment_date FROM transactions WHERE id = ?", [$result]);
            echo "مقدار ذخیره شده در دیتابیس: " . $saved['payment_date'] . "<br>";
        } else {
            echo "❌ درج در دیتابیس ناموفق بود.<br>";
        }
    } catch (Exception $e) {
        echo "❌ خطا: " . $e->getMessage() . "<br>";
    }
} else {
    echo "❌ کاربر یا ترم معتبری در دیتابیس وجود ندارد!<br>";
}
?>