<?php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET');

require_once __DIR__ . '/../../database.php';

try {
    $database = new Database();
    $db = $database->getConnection();
    
    if (!$db) {
        throw new Exception("فشل الاتصال بقاعدة البيانات");
    }
    
    $request_number = $_GET['number'] ?? '';
    $format = $_GET['format'] ?? 'pdf';
    
    if (empty($request_number)) {
        throw new Exception("رقم الطلب مطلوب");
    }
    
    // جلب بيانات الطلب
    $query = "SELECT 
                ir.request_number,
                ir.created_at,
                ir.total_price,
                ir.status,
                ir.notes,
                CONCAT(u.first_name, ' ', u.last_name) as client_name,
                u.phone,
                u.email,
                c.city,
                c.address,
                cc.brand,
                cc.model,
                cc.year,
                cc.color,
                cc.plate_number,
                cc.chassis_number,
                it.name as inspection_name,
                it.price as inspection_price,
                p.payment_status,
                p.payment_date,
                CONCAT(iu.first_name, ' ', iu.last_name) as inspector_name,
                ic.name as center_name,
                ic.address as center_address,
                ic.phone as center_phone
              FROM inspection_requests ir
              JOIN clients c ON ir.client_id = c.id
              JOIN users u ON c.user_id = u.id
              JOIN client_cars cc ON ir.car_id = cc.id
              JOIN inspection_types it ON ir.inspection_type_id = it.id
              LEFT JOIN payments p ON ir.id = p.request_id
              LEFT JOIN inspectors i ON ir.inspector_id = i.id
              LEFT JOIN users iu ON i.user_id = iu.id
              LEFT JOIN inspection_centers ic ON ir.center_id = ic.id
              WHERE ir.request_number = :request_number";
    
    $stmt = $db->prepare($query);
    $stmt->execute(['request_number' => $request_number]);
    $request = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$request) {
        throw new Exception("الطلب غير موجود");
    }
    
    // التحقق من وجود نقاط التفتيش
    $checkpointsQuery = "SELECT 
                            checkpoint_name,
                            status,
                            notes,
                            image_urls
                         FROM inspection_checkpoints
                         WHERE request_id = (SELECT id FROM inspection_requests WHERE request_number = :request_number)";
    $checkpointsStmt = $db->prepare($checkpointsQuery);
    $checkpointsStmt->execute(['request_number' => $request_number]);
    $checkpoints = $checkpointsStmt->fetchAll(PDO::FETCH_ASSOC);
    
    if ($format === 'pdf') {
        generatePDF($request, $checkpoints);
    } elseif ($format === 'excel') {
        generateExcel($request, $checkpoints);
    } else {
        echo json_encode(['success' => false, 'message' => 'صيغة غير مدعومة']);
    }
    
} catch (Exception $e) {
    echo json_encode([
        'success' => false,
        'message' => $e->getMessage()
    ]);
}

function generatePDF($request, $checkpoints) {
    // استخدام مكتبة TCPDF أو FPDF
    // هذا مثال مبسط - يمكنك استخدام مكتبة متخصصة
    
    header('Content-Type: application/pdf');
    header('Content-Disposition: attachment; filename="report-' . $request['request_number'] . '.pdf"');
    
    $html = '
    <!DOCTYPE html>
    <html dir="rtl">
    <head>
        <meta charset="UTF-8">
        <title>تقرير فحص - ' . $request['request_number'] . '</title>
        <style>
            body { font-family: DejaVu Sans, sans-serif; margin: 20px; }
            .header { text-align: center; margin-bottom: 30px; }
            .header h1 { color: #1e3c72; }
            .section { margin-bottom: 20px; }
            .section h2 { color: #00f3ff; border-bottom: 2px solid #ff00ff; padding-bottom: 5px; }
            table { width: 100%; border-collapse: collapse; margin: 10px 0; }
            th { background: #1e3c72; color: white; padding: 10px; text-align: center; }
            td { padding: 8px; border-bottom: 1px solid #ddd; text-align: center; }
            .info-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
            .info-item { padding: 8px; background: #f5f5f5; border-radius: 5px; }
            .label { font-weight: bold; color: #666; }
            .value { color: #333; }
            .status-pass { color: #00d68f; font-weight: bold; }
            .status-fail { color: #ff4444; font-weight: bold; }
            .status-warning { color: #ffaa00; font-weight: bold; }
            .footer { margin-top: 30px; text-align: center; color: #666; }
        </style>
    </head>
    <body>
        <div class="header">
            <h1> AUTO TESTER PRO</h1>
            <h2>تقرير فحص السيارة</h2>
            <p>رقم التقرير: ' . $request['request_number'] . '</p>
            <p>تاريخ التقرير: ' . date('Y-m-d') . '</p>
        </div>
        
        <div class="section">
            <h2>معلومات العميل</h2>
            <div class="info-grid">
                <div class="info-item">
                    <div class="label">الاسم:</div>
                    <div class="value">' . $request['client_name'] . '</div>
                </div>
                <div class="info-item">
                    <div class="label">رقم الهاتف:</div>
                    <div class="value">' . $request['phone'] . '</div>
                </div>
                <div class="info-item">
                    <div class="label">البريد الإلكتروني:</div>
                    <div class="value">' . $request['email'] . '</div>
                </div>
                <div class="info-item">
                    <div class="label">المدينة:</div>
                    <div class="value">' . $request['city'] . '</div>
                </div>
            </div>
        </div>
        
        <div class="section">
            <h2>معلومات السيارة</h2>
            <div class="info-grid">
                <div class="info-item">
                    <div class="label">الماركة:</div>
                    <div class="value">' . $request['brand'] . '</div>
                </div>
                <div class="info-item">
                    <div class="label">الموديل:</div>
                    <div class="value">' . $request['model'] . '</div>
                </div>
                <div class="info-item">
                    <div class="label">السنة:</div>
                    <div class="value">' . $request['year'] . '</div>
                </div>
                <div class="info-item">
                    <div class="label">اللون:</div>
                    <div class="value">' . ($request['color'] ?: '---') . '</div>
                </div>
                <div class="info-item">
                    <div class="label">رقم اللوحة:</div>
                    <div class="value">' . ($request['plate_number'] ?: '---') . '</div>
                </div>
                <div class="info-item">
                    <div class="label">رقم الشاصي:</div>
                    <div class="value">' . ($request['chassis_number'] ?: '---') . '</div>
                </div>
            </div>
        </div>
        
        <div class="section">
            <h2>نتائج الفحص</h2>
            <table>
                <thead>
                    <tr>
                        <th>نقطة التفتيش</th>
                        <th>الحالة</th>
                        <th>ملاحظات</th>
                    </tr>
                </thead>
                <tbody>';
    
    if (count($checkpoints) > 0) {
        foreach ($checkpoints as $cp) {
            $statusClass = $cp['status'] === 'pass' ? 'status-pass' : 
                          ($cp['status'] === 'fail' ? 'status-fail' : 'status-warning');
            $statusText = $cp['status'] === 'pass' ? 'ناجح' : 
                         ($cp['status'] === 'fail' ? 'راسب' : 'تحذير');
            
            $html .= '
                    <tr>
                        <td>' . $cp['checkpoint_name'] . '</td>
                        <td class="' . $statusClass . '">' . $statusText . '</td>
                        <td>' . ($cp['notes'] ?: '---') . '</td>
                    </tr>';
        }
    } else {
        $html .= '
                    <tr>
                        <td colspan="3" style="text-align: center;">لم يتم تسجيل نتائج الفحص بعد</td>
                    </tr>';
    }
    
    $html .= '
                </tbody>
            </table>
        </div>
        
        <div class="section">
            <h2>معلومات إضافية</h2>
            <div class="info-grid">
                <div class="info-item">
                    <div class="label">نوع الفحص:</div>
                    <div class="value">' . $request['inspection_name'] . '</div>
                </div>
                <div class="info-item">
                    <div class="label">قيمة الفحص:</div>
                    <div class="value">' . number_format($request['total_price']) . ' ج.م</div>
                </div>
                <div class="info-item">
                    <div class="label">حالة الدفع:</div>
                    <div class="value">' . ($request['payment_status'] === 'paid' ? 'مدفوع' : 'غير مدفوع') . '</div>
                </div>';
    
    if ($request['inspector_name']) {
        $html .= '
                <div class="info-item">
                    <div class="label">الفاحص:</div>
                    <div class="value">' . $request['inspector_name'] . '</div>
                </div>';
    }
    
    if ($request['center_name']) {
        $html .= '
                <div class="info-item">
                    <div class="label">مركز الفحص:</div>
                    <div class="value">' . $request['center_name'] . '</div>
                </div>';
    }
    
    $html .= '
            </div>
        </div>';
    
    if ($request['notes']) {
        $html .= '
        <div class="section">
            <h2>ملاحظات</h2>
            <p>' . nl2br($request['notes']) . '</p>
        </div>';
    }
    
    $html .= '
        <div class="footer">
            <p>هذا التقرير غير قابل للتعديل ويعتبر نتيجة الفحص النهائية</p>
            <p>جميع الحقوق محفوظة &copy; ' . date('Y') . ' AUTO TESTER PRO</p>
        </div>
    </body>
    </html>';
    
    echo $html;
}

function generateExcel($request, $checkpoints) {
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment; filename="report-' . $request['request_number'] . '.xls"');
    
    $html = '
    <html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40">
    <head>
        <meta charset="UTF-8">
        <title>تقرير فحص</title>
        <style>
            .title { font-size: 20px; font-weight: bold; text-align: center; }
            .header { background: #1e3c72; color: white; font-weight: bold; }
            .pass { color: green; }
            .fail { color: red; }
            .warning { color: orange; }
        </style>
    </head>
    <body>
        <table border="1">
            <tr><td colspan="2" class="title">تقرير فحص السيارة - AUTO TESTER PRO</td></tr>
            <tr><td colspan="2">رقم التقرير: ' . $request['request_number'] . '</td></tr>
            <tr><td colspan="2">تاريخ التقرير: ' . date('Y-m-d') . '</td></tr>
            
            <tr class="header"><td colspan="2">معلومات العميل</td></tr>
            <tr><td>الاسم</td><td>' . $request['client_name'] . '</td></tr>
            <tr><td>رقم الهاتف</td><td>' . $request['phone'] . '</td></tr>
            <tr><td>البريد الإلكتروني</td><td>' . $request['email'] . '</td></tr>
            <tr><td>المدينة</td><td>' . $request['city'] . '</td></tr>
            
            <tr class="header"><td colspan="2">معلومات السيارة</td></tr>
            <tr><td>الماركة</td><td>' . $request['brand'] . '</td></tr>
            <tr><td>الموديل</td><td>' . $request['model'] . '</td></tr>
            <tr><td>السنة</td><td>' . $request['year'] . '</td></tr>
            <tr><td>اللون</td><td>' . ($request['color'] ?: '---') . '</td></tr>
            <tr><td>رقم اللوحة</td><td>' . ($request['plate_number'] ?: '---') . '</td></tr>
            <tr><td>رقم الشاصي</td><td>' . ($request['chassis_number'] ?: '---') . '</td></tr>
            
            <tr class="header"><td colspan="2">نتائج الفحص</td></tr>';
    
    if (count($checkpoints) > 0) {
        foreach ($checkpoints as $cp) {
            $html .= '
            <tr>
                <td>' . $cp['checkpoint_name'] . '</td>
                <td class="' . $cp['status'] . '">' . $cp['status'] . '</td>
            </tr>';
            if ($cp['notes']) {
                $html .= '<tr><td colspan="2">ملاحظات: ' . $cp['notes'] . '</td></tr>';
            }
        }
    } else {
        $html .= '<tr><td colspan="2">لم يتم تسجيل نتائج الفحص بعد</td></tr>';
    }
    
    $html .= '
            <tr class="header"><td colspan="2">معلومات إضافية</td></tr>
            <tr><td>نوع الفحص</td><td>' . $request['inspection_name'] . '</td></tr>
            <tr><td>قيمة الفحص</td><td>' . number_format($request['total_price']) . ' ج.م</td></tr>
            <tr><td>حالة الدفع</td><td>' . ($request['payment_status'] === 'paid' ? 'مدفوع' : 'غير مدفوع') . '</td></tr>';
    
    if ($request['inspector_name']) {
        $html .= '<tr><td>الفاحص</td><td>' . $request['inspector_name'] . '</td></tr>';
    }
    
    if ($request['center_name']) {
        $html .= '<tr><td>مركز الفحص</td><td>' . $request['center_name'] . '</td></tr>';
    }
    
    if ($request['notes']) {
        $html .= '<tr><td colspan="2">ملاحظات إضافية: ' . $request['notes'] . '</td></tr>';
    }
    
    $html .= '
        </table>
    </body>
    </html>';
    
    echo $html;
}
?>