<?php
/**
 * داده تست فعال برای کارشناس svc_tech1_demo
 * http://localhost/acc-engine/run-service-tech-seed.php
 */
declare(strict_types=1);

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

require_once __DIR__ . '/standalone/bootstrap.php';
require_once ACC_PATH . 'includes/helpers/svc-teams.php';
require_once ACC_PATH . 'includes/controllers/SR_Controller.php';
require_once ACC_PATH . 'includes/controllers/Chat_Controller.php';

global $wpdb;

function seed_req( string $method, array $json = [], array $url = [] ): WP_REST_Request {
    $r = new WP_REST_Request( $method );
    $r->set_json_params( $json );
    $r->set_url_params( $url );
    return $r;
}

$tech_login = 'svc_tech1_demo';
$senior_login = 'svc_senior_demo';

$tech_id = (int) $wpdb->get_var( $wpdb->prepare(
    "SELECT ID FROM {$wpdb->users} WHERE user_login = %s", $tech_login
) );
$senior_id = (int) $wpdb->get_var( $wpdb->prepare(
    "SELECT ID FROM {$wpdb->users} WHERE user_login = %s", $senior_login
) );

if ( ! $tech_id ) {
    die( '❌ کاربر svc_tech1_demo یافت نشد. ابتدا run-service-team-demo.php را اجرا کنید.' );
}

// اطمینان از تیم
Svc_Teams::add_team_member( $senior_id ?: $tech_id, $tech_id );

$session_key = 'tech_seed_' . date( 'Ymd_His' );
$GLOBALS['acc_current_user'] = null;

// ۱. درخواست جدید مشتری
$res = SR_Controller::visitor_create_request( seed_req( 'POST', [
    'session_key'    => $session_key,
    'name'           => 'آقای کامران شریفی',
    'company'        => 'رستوران نارون',
    'phone'          => '09121112233',
    'email'          => 'naroon@test.local',
    'address'        => 'تهران، جردن، کوچه نسترن',
    'site_label'     => 'سردخانه انبار — طبقه منفی یک',
    'service_type'   => 'repair',
    'complaint_text' => 'کمپرسور مدام قطع و وصل می‌شود. دمای انبار تا ۵ درجه بالا رفته.',
    'complaint_tags' => [ 'کمپرسور', 'دمای بالا' ],
    'device_type'    => 'سردخانه انبار',
    'brand'          => 'Bitzer',
    'model'          => '4DES-7Y',
] ) );

$data = $res->get_data();
if ( empty( $data['success'] ) ) {
    die( '❌ ثبت درخواست: ' . ( $data['message'] ?? 'خطا' ) );
}

$request_id      = (int) $data['data']['id'];
$tracking_code   = $data['data']['tracking_code'];
$request_no      = $data['data']['request_no'];
$conversation_id = (int) ( $data['data']['conversation_id'] ?? 0 );

// ۲. پیام مشتری
if ( $conversation_id ) {
    Chat_Controller::visitor_message( seed_req( 'POST', [
        'session_key' => $session_key,
        'room_id'     => $conversation_id,
        'body'        => 'سلام، سردخانه انبار از صبح مشکل دارد. لطفاً کارشناس بفرستید.',
    ] ) );
}

// ۳. Dispatch به رضا موسوی
$GLOBALS['acc_current_user'] = [
    'id' => $senior_id ?: 1,
    'username' => $senior_login,
    'display_name' => 'کارشناس ارشد',
    'roles' => [],
    'permissions' => [],
];
$GLOBALS['acc_jwt_user_id'] = $senior_id ?: 1;

$assign = SR_Controller::assign_request( seed_req( 'POST', [
    'technician_id'  => $tech_id,
    'status'         => 'assigned',
    'scheduled_at'   => date( 'Y-m-d H:i:s', strtotime( '+4 hours' ) ),
    'dispatch_notes' => 'داده تست — اولویت بالا برای کارشناس ویجت',
], [ 'id' => $request_id ] ) );

$assign_data = $assign->get_data();

// ۴. تأیید صف کار
$GLOBALS['acc_jwt_user_id'] = $tech_id;
$GLOBALS['acc_current_user'] = [
    'id' => $tech_id,
    'username' => $tech_login,
    'display_name' => 'رضا موسوی',
    'roles' => [],
    'permissions' => [],
];

$queue = SR_Controller::technician_my_queue( seed_req( 'GET' ) );
$queue_rows = $queue->get_data()['data'] ?? [];

$result = [
    'technician' => [
        'login'    => $tech_login,
        'password' => 'Demo@2026',
        'name'     => 'رضا موسوی — کارشناس میدانی ۱',
    ],
    'request' => [
        'id'              => $request_id,
        'request_no'      => $request_no,
        'tracking_code'   => $tracking_code,
        'conversation_id' => $conversation_id,
        'status'          => 'assigned',
        'customer'        => 'آقای کامران شریفی',
    ],
    'queue_count' => count( $queue_rows ),
    'queue_codes' => array_column( $queue_rows, 'tracking_code' ),
];

file_put_contents(
    __DIR__ . '/docs/service/tech-seed-result.json',
    json_encode( $result, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT )
);

header( 'Content-Type: text/html; charset=utf-8' );
?>
<!DOCTYPE html>
<html dir="rtl" lang="fa">
<head><meta charset="utf-8"><title>داده تست کارشناس</title>
<style>
body{font-family:Tahoma,sans-serif;background:#f0fdf4;padding:24px;max-width:560px;margin:0 auto}
.card{background:#fff;border:1px solid #bbf7d0;border-radius:12px;padding:20px;margin:12px 0}
.badge{display:inline-block;background:#1d4ed8;color:#fff;padding:8px 16px;border-radius:20px;font-family:monospace;font-size:22px;font-weight:800;letter-spacing:4px}
code{background:#f1f5f9;padding:2px 6px;border-radius:4px}
h1{color:#166534;font-size:20px}
</style></head>
<body>
<h1>✅ پرونده فعال برای کارشناس ساخته شد</h1>
<div class="card">
<p><b>ورود ویجت / ERP:</b></p>
<p>نام کاربری: <code><?= htmlspecialchars( $tech_login ) ?></code><br>
رمز: <code>Demo@2026</code></p>
</div>
<div class="card" style="text-align:center">
<p>کد پیگیری (مشتری):</p>
<p class="badge"><?= htmlspecialchars( $tracking_code ) ?></p>
<p style="font-size:12px;color:#64748b">شماره: <?= htmlspecialchars( $request_no ) ?> · مشتری: کامران شریفی</p>
</div>
<div class="card">
<p>✅ در صف کار کارشناس: <b><?= count( $queue_rows ) ?></b> پرونده</p>
<p style="font-size:13px">ویجت → تب <b>کارشناس</b> → رفرش یا دوباره ورود → باید این پرونده را ببینید.</p>
</div>
</body></html>
