<?php
/**
 * صفحه عمومی گزارش فنی SRD — QR + چاپ PDF
 * /acc-engine/service-report.php?token=...
 */
declare(strict_types=1);

define( 'ABSPATH', __DIR__ . '/' );
define( 'ACC_PATH', __DIR__ . '/' );
define( 'ACC_URL', '/acc-engine/' );

if ( ! function_exists( 'esc_html' ) ) {
    function esc_html( $text ) {
        return htmlspecialchars( (string) $text, ENT_QUOTES, 'UTF-8' );
    }
}

if ( ! function_exists( 'current_time' ) ) {
    function current_time( $type = 'mysql' ) {
        return date( 'Y-m-d H:i:s' );
    }
}

require_once __DIR__ . '/standalone/config.php';

try {
    $pdo = new PDO( ACC_DB_DSN, ACC_DB_USER, ACC_DB_PASS, [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    ] );
    $pdo->exec( 'SET NAMES utf8mb4' );
} catch ( Throwable $e ) {
    http_response_code( 500 );
    die( 'خطا در اتصال به پایگاه داده' );
}

        $token = trim( $_GET['token'] ?? '' );
        if ( ! $token || ! preg_match( '/^[a-f0-9]{32}$/i', $token ) ) {
    http_response_code( 404 );
    die( '<!DOCTYPE html><html dir="rtl"><body style="font-family:Tahoma;padding:40px;text-align:center;"><h2>گزارش یافت نشد</h2><p>لینک نامعتبر است.</p></body></html>' );
}

$stmt = $pdo->prepare(
    'SELECT * FROM `' . ACC_DB_PREFIX . 'svc_reports` WHERE public_token = ? AND status = ? LIMIT 1'
);
$stmt->execute( [ $token, 'final' ] );
$report = $stmt->fetch();

if ( ! $report ) {
    http_response_code( 404 );
    die( '<!DOCTYPE html><html dir="rtl"><body style="font-family:Tahoma;padding:40px;text-align:center;"><h2>گزارش یافت نشد</h2><p>گزارش نهایی نشده یا لینک منقضی شده است.</p></body></html>' );
}

require_once ACC_PATH . 'includes/controllers/SR_Controller.php';
require_once ACC_PATH . 'includes/helpers/service-report-render.php';

header( 'Content-Type: text/html; charset=utf-8' );
echo Service_Report_Render::render_html( $report );
