<?php
declare(strict_types=1);

require_once __DIR__ . '/../db.php';

$pdo = db();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

$sourceUid = 'uae-penal-31-2021';
$txtFile   = __DIR__ . '/uae_penal_law_31_2021_clean.txt';

if (!is_file($txtFile)) {
    exit('TXT file not found: ' . $txtFile);
}

$text = file_get_contents($txtFile);
if ($text === false || trim($text) === '') {
    exit('TXT file is empty or unreadable');
}

// تنظيف أولي
$text = str_replace(["\r\n", "\r"], "\n", $text);
$text = preg_replace('/[\x{200E}\x{200F}\x{202A}-\x{202E}\x{2066}-\x{2069}\x{FEFF}]/u', '', $text);
$text = preg_replace('/[ \t]+/u', ' ', $text);
$text = preg_replace('/\n{3,}/u', "\n\n", $text);

// جلب law_id
$lawStmt = $pdo->prepare("SELECT id, law_title FROM legal_laws WHERE source_uid = ? LIMIT 1");
$lawStmt->execute([$sourceUid]);
$law = $lawStmt->fetch();
if (!$law) {
    exit('Law not found in legal_laws for source_uid=' . $sourceUid);
}
$lawId = (int)$law['id'];

// تقسيم المواد
preg_match_all('/المادة\s*[\(（]?\s*(\d+)\s*[\)）]?\s*(.*?)(?=\n\s*المادة\s*[\(（]?\s*\d+\s*[\)）]?|\z)/us', $text, $matches, PREG_SET_ORDER);
if (!$matches) {
    exit('No articles matched. Check the text format.');
}

$insert = $pdo->prepare("\n    INSERT INTO legal_articles (law_id, article_number, article_title, article_text, keywords)\n    VALUES (?, ?, ?, ?, ?)\n    ON DUPLICATE KEY UPDATE\n        article_title = VALUES(article_title),\n        article_text  = VALUES(article_text),\n        keywords      = VALUES(keywords)\n");

$count = 0;
foreach ($matches as $m) {
    $articleNumber = trim($m[1] ?? '');
    $body = trim($m[2] ?? '');
    if ($articleNumber === '' || $body === '') {
        continue;
    }

    // استخراج عنوان مختصر من أول سطر أو أول 80 حرف
    $firstLine = trim((string)preg_split('/\n/u', $body)[0]);
    $articleTitle = mb_substr($firstLine !== '' ? $firstLine : ('المادة ' . $articleNumber), 0, 180);

    // كلمات مفتاحية بسيطة
    $keywords = 'قانون الجرائم والعقوبات,المرسوم بقانون اتحادي رقم 31 لسنة 2021,المادة ' . $articleNumber;

    $insert->execute([
        $lawId,
        $articleNumber,
        $articleTitle,
        $body,
        $keywords,
    ]);
    $count++;
}

echo 'Imported/updated articles: ' . $count;
