<?php
/**
 * Meta Manager - Centralized meta tags and page title management
 * Ensures all pages have proper meta titles, descriptions, and keywords
 */

function getPageMeta($page = 'home', $additionalInfo = []) {
    // Load site config for branding
    $siteConfig = [];
    $configFile = __DIR__ . '/../data/site_config.json';
    if (file_exists($configFile)) {
        $siteConfig = json_decode(file_get_contents($configFile), true) ?: [];
    }
    
    $siteName = $siteConfig['title'] ?? 'Emporio Sport';
    $metaSuffix = $siteConfig['meta_title_suffix'] ?? ' | Emporio Sport';
    $defaultDesc = $siteConfig['meta_description_default'] ?? 'Emporio Sport - Abbigliamento sportivo e materiale tecnico per atleti e società sportive.';
    $defaultKeywords = $siteConfig['meta_keywords'] ?? 'sport, abbigliamento sportivo, attrezzatura';
    
    $pages = [
        'home' => [
            'title' => 'Home' . $metaSuffix,
            'description' => 'Emporio Sport - Abbigliamento sportivo e materiale tecnico per atleti, società sportive e aziende. Abbigliamento personalizzato, premiazioni e consulenza gratuita.',
            'keywords' => 'sport, abbigliamento sportivo, attrezzatura tecnica, società sportive, personalizzato'
        ],
        'shop' => [
            'title' => 'Shop - Prodotti Sportivi' . $metaSuffix,
            'description' => 'Scopri la nostra vasta collezione di abbigliamento sportivo e attrezzatura tecnica per tutte le discipline sportive.',
            'keywords' => 'shop, abbigliamento sportivo, attrezzatura, calcio, volley, tennis, rugby, fitness, nuoto, basket'
        ],
        'product' => [
            'title' => ($additionalInfo['name'] ?? 'Prodotto') . $metaSuffix,
            'description' => $additionalInfo['description'] ?? $defaultDesc,
            'keywords' => 'prodotto, ' . ($additionalInfo['category'] ?? 'sport') . ', ' . $defaultKeywords
        ],
        'about' => [
            'title' => 'Chi Siamo' . $metaSuffix,
            'description' => 'Scopri la storia di Emporio Sport, la tua fonte di fiducia per abbigliamento sportivo personalizzato e attrezzatura tecnica di qualità.',
            'keywords' => 'chi siamo, emporio sport, abbigliamento personalizzato, storia, team'
        ],
        'contact' => [
            'title' => 'Contatti' . $metaSuffix,
            'description' => 'Contattaci per domande su abbigliamento personalizzato, attrezzatura sportiva o servizi. Via Marco Polo, Albignasego (PD).',
            'keywords' => 'contatti, support, emporio sport, albignasego, padova'
        ],
        'blogs' => [
            'title' => 'Blog - Tips e Guide Sportive' . $metaSuffix,
            'description' => 'Leggi i nostri articoli e guide su sport, allenamento, abbigliamento tecnico e consigli per atleti e società sportive.',
            'keywords' => 'blog, guide sportive, tips, allenamento, consigli, sport'
        ],
        'blog' => [
            'title' => ($additionalInfo['title'] ?? 'Articolo') . $metaSuffix,
            'description' => $additionalInfo['excerpt'] ?? $defaultDesc,
            'keywords' => $additionalInfo['keywords'] ?? $defaultKeywords
        ],
        'cart' => [
            'title' => 'Carrello' . $metaSuffix,
            'description' => 'Revisiona i tuoi articoli e procedi al checkout. Consegna veloce e resi facili.',
            'keywords' => 'carrello, checkout, ordine'
        ],
        'checkout' => [
            'title' => 'Checkout' . $metaSuffix,
            'description' => 'Completa il tuo ordine di abbigliamento sportivo con pagamento sicuro.',
            'keywords' => 'checkout, pagamento, ordine, spedizione'
        ],
        'category' => [
            'title' => ($additionalInfo['name'] ?? 'Categoria') . ' - Abbigliamento' . $metaSuffix,
            'description' => $additionalInfo['description'] ?? 'Scopri la nostra collezione di ' . ($additionalInfo['name'] ?? 'abbigliamento sportivo'),
            'keywords' => ($additionalInfo['name'] ?? 'categoria') . ', abbigliamento, ' . $defaultKeywords
        ],
        'dashboard' => [
            'title' => 'Dashboard' . $metaSuffix,
            'description' => 'Accedi al tuo account personale e gestisci i tuoi ordini.',
            'keywords' => 'dashboard, account, profilo'
        ],
        'wishlist' => [
            'title' => 'Wishlist' . $metaSuffix,
            'description' => 'I tuoi articoli salvati e desiderati da Emporio Sport.',
            'keywords' => 'wishlist, desideri, articoli salvati'
        ]
    ];
    
    return $pages[$page] ?? [
        'title' => 'Pagina' . $metaSuffix,
        'description' => $defaultDesc,
        'keywords' => $defaultKeywords
    ];
}

function renderMetaTags($page = 'home', $additionalInfo = []) {
    $meta = getPageMeta($page, $additionalInfo);
    $siteUrl = 'https://' . ($_SERVER['HTTP_HOST'] ?? 'emporio-sport.it');
    $currentUrl = $siteUrl . ($_SERVER['REQUEST_URI'] ?? '/');
    
    // Load site config for og:image
    $siteConfig = [];
    $configFile = __DIR__ . '/../data/site_config.json';
    if (file_exists($configFile)) {
        $siteConfig = json_decode(file_get_contents($configFile), true) ?: [];
    }
    
    $ogImage = $siteUrl . '/' . ($siteConfig['logo'] ?? 'sport-pics/logo-1.png');
    if (!empty($additionalInfo['image'])) {
        $ogImage = $additionalInfo['image'];
    }
    
    $html = '';
    $html .= '<title>' . htmlspecialchars($meta['title']) . '</title>' . PHP_EOL;
    $html .= '<meta name="description" content="' . htmlspecialchars($meta['description']) . '">' . PHP_EOL;
    $html .= '<meta name="keywords" content="' . htmlspecialchars($meta['keywords']) . '">' . PHP_EOL;
    $html .= '<link rel="canonical" href="' . htmlspecialchars($currentUrl) . '">' . PHP_EOL;
    
    // Open Graph tags
    $html .= '<meta property="og:title" content="' . htmlspecialchars($meta['title']) . '">' . PHP_EOL;
    $html .= '<meta property="og:description" content="' . htmlspecialchars($meta['description']) . '">' . PHP_EOL;
    $html .= '<meta property="og:type" content="website">' . PHP_EOL;
    $html .= '<meta property="og:url" content="' . htmlspecialchars($currentUrl) . '">' . PHP_EOL;
    $html .= '<meta property="og:image" content="' . htmlspecialchars($ogImage) . '">' . PHP_EOL;
    $html .= '<meta property="og:site_name" content="Emporio Sport">' . PHP_EOL;
    
    // Twitter Card
    $html .= '<meta name="twitter:card" content="summary_large_image">' . PHP_EOL;
    $html .= '<meta name="twitter:title" content="' . htmlspecialchars($meta['title']) . '">' . PHP_EOL;
    $html .= '<meta name="twitter:description" content="' . htmlspecialchars($meta['description']) . '">' . PHP_EOL;
    $html .= '<meta name="twitter:image" content="' . htmlspecialchars($ogImage) . '">' . PHP_EOL;
    
    // Additional meta tags
    $html .= '<meta name="viewport" content="width=device-width, initial-scale=1.0">' . PHP_EOL;
    $html .= '<meta charset="UTF-8">' . PHP_EOL;
    $html .= '<meta http-equiv="X-UA-Compatible" content="ie=edge">' . PHP_EOL;
    
    return $html;
}

function setMetaTitle($title) {
    $_SESSION['meta_title'] = $title;
}

function getMetaTitle($default = 'Emporio Sport') {
    return $_SESSION['meta_title'] ?? $default;
}
?>
