<?php
// sitemap_sync.php - ENTERPRISE LOGIC
require 'config.php';

// --- CONFIGURARE ---
$sitemapList = [
    'https://www.infocontact.ro/post-sitemap3.xml',
    'https://www.infocontact.ro/post-sitemap.xml',
    'https://www.infocontact.ro/post-sitemap2.xml'
];
// -------------------

set_time_limit(300); 

function getUrlsFromSitemap($url) {
    $urls = [];
    echo "Scanez: $url ... <br>";
    $xmlContent = @file_get_contents($url);
    if (!$xmlContent) return [];
    
    $xml = simplexml_load_string($xmlContent);
    if (!$xml) return [];

    if (isset($xml->sitemap)) {
        foreach ($xml->sitemap as $sitemap) {
            $urls = array_merge($urls, getUrlsFromSitemap((string)$sitemap->loc));
        }
    } elseif (isset($xml->url)) {
        foreach ($xml->url as $urlEntry) {
            $urls[] = trim((string)$urlEntry->loc);
        }
    }
    return $urls;
}

echo "<h3>🔄 Start Enterprise Sync...</h3>";

// 1. Resetam flag-ul in_sitemap pentru TOATE paginile (presupunem ca nimic nu e in sitemap initial)
$pdo->query("UPDATE seo_audit SET in_sitemap = 0");

// 2. Colectam URL-urile curente
$sitemapUrls = [];
foreach ($sitemapList as $sm) {
    $sitemapUrls = array_merge($sitemapUrls, getUrlsFromSitemap($sm));
}
$sitemapUrls = array_unique($sitemapUrls);

if (count($sitemapUrls) > 0) {
    echo "Găsite în XML: <strong>" . count($sitemapUrls) . "</strong><br>";
    
    // 3. Insert sau Update (ON DUPLICATE KEY)
    // Daca URL exista, il marcam ca in_sitemap = 1. Daca nu, il adaugam.
    $stmt = $pdo->prepare("INSERT INTO seo_audit (url, in_sitemap, status) VALUES (?, 1, 'pending') ON DUPLICATE KEY UPDATE in_sitemap = 1");
    
    $added = 0;
    foreach ($sitemapUrls as $url) {
        $stmt->execute([$url]);
        if ($stmt->rowCount() == 1) $added++; // Doar daca a fost INSERT nou
    }

    // 4. Calculam Orfanele (care au ramas cu 0)
    $orphans = $pdo->query("SELECT COUNT(*) FROM seo_audit WHERE in_sitemap = 0")->fetchColumn();

    echo "<h3>📊 Rezultat Sincronizare:</h3>";
    echo "✅ Confirmate în Sitemap: <strong>" . count($sitemapUrls) . "</strong><br>";
    echo "➕ Adăugate noi în DB: <strong>$added</strong><br>";
    echo "👻 Pagini Orfane (marcate, nu șterse): <strong>$orphans</strong><br>";
    echo "<i>(Acestea există în DB/Google, dar nu mai sunt în Sitemap)</i>";

} else {
    echo "<h3 style='color:red'>❌ Eroare citire sitemap. Baza de date nu a fost modificată.</h3>";
}
?>