<?php
namespace Isekai\AIToolbox\Job;

use Job;
use MediaWiki\MediaWikiServices;
use Title;

class UpdateTitleIndexJob extends Job {
    public function __construct(Title $title) {
        parent::__construct('isekaiAIUpdateTitleIndex', $title);
    }

    /**
     * 触发AI后端更新标题索引
     */
    public function run() {
        $services = MediaWikiServices::getInstance();
        $config = $services->getMainConfig();

        $endpoint = $config->get('IsekaiAIBackendEndpoint');
        $authToken = $config->get('IsekaiAIToolboxToken');

        $title = $this->title;
        $pageTitle = $title->getText();

        $factory = MediaWikiServices::getInstance()->getHttpRequestFactory();
        $req = $factory->create($endpoint . '/sys/embedding_search/title/update', [
            'method' => 'POST',
            'postData' => [
                'title' => $pageTitle
            ],
            'timeout' => 20
        ], __METHOD__);

        $req->setHeader('Authorization', 'Bearer ' . $authToken);

        $status = \Status::wrap($req->execute());
        if(!$status->isOK()){
            $this->setLastError($status->getMessage());
            return false;
        }

        return true;
    }
}