<?php

// Обработка формы
if (isset($_POST['form_submitted']) && $_POST['form_submitted'] == '1') {
    // Обработка данных формы
    
    // Сохранение content данных
    if (isset($_POST['content'])) {
        $contentSettings = settings('content');
        foreach ($_POST['content'] as $key => $value) {
            if (in_array($key, ['faq', 'menu', 'casino_list']) && is_array($value)) {
                // Обрабатываем repeater поля как JSON массивы
                $contentSettings->set($key, json_encode($value));
            } elseif (!in_array($key, ['header-logo', 'banner-logo', 'footer-logo'])) {
                // Пропускаем logo поля - они обрабатываются отдельно
                $contentSettings->set($key, $value);
            }
        }
    }
    
    // Сохранение styles данных
    if (isset($_POST['styles'])) {
        $stylesSettings = settings('styles');
        foreach ($_POST['styles'] as $key => $value) {
            $stylesSettings->set($key, $value);
        }
    }
    
    // Сохранение seo данных
    if (isset($_POST['seo'])) {
        $seoSettings = settings('seo');
        foreach ($_POST['seo'] as $key => $value) {
            if ($key === 'hreflang' && is_array($value)) {
                // Обрабатываем hreflang как массив
                $seoSettings->set($key, json_encode($value));
            } else {
                $seoSettings->set($key, $value);
            }
        }
    }
    
    // Сохранение jsonld данных
    if (isset($_POST['jsonld'])) {
        $jsonldSettings = settings('jsonld');
        foreach ($_POST['jsonld'] as $key => $value) {
            $jsonldSettings->set($key, $value);
        }
    }
    
    // Обработка загрузки og-image
    if (isset($_FILES['seo'])) {
        $imagePath = uploadImage($_FILES['seo'], 'og-image');
        if ($imagePath) {
            $seoSettings = settings('seo');
            $seoSettings->set('og-image', $imagePath);
        }
    }
    
    // Обработка загрузки изображений контента
    if (isset($_FILES['content'])) {
        $contentSettings = settings('content');
        
        // Header logo
        $imagePath = uploadImage($_FILES['content'], 'header-logo');
        if ($imagePath) {
            $headerData = $_POST['content']['header-logo'] ?? [];
            $headerData['src'] = $imagePath;
            $contentSettings->set('header-logo', json_encode($headerData));
        }
        
        // Banner logo
        $imagePath = uploadImage($_FILES['content'], 'banner-logo');
        if ($imagePath) {
            $bannerData = $_POST['content']['banner-logo'] ?? [];
            $bannerData['src'] = $imagePath;
            $contentSettings->set('banner-logo', json_encode($bannerData));
        }
        
        // Footer logo
        $imagePath = uploadImage($_FILES['content'], 'footer-logo');
        if ($imagePath) {
            $footerData = $_POST['content']['footer-logo'] ?? [];
            $footerData['src'] = $imagePath;
            $contentSettings->set('footer-logo', json_encode($footerData));
        }
        
        // Favicon
        $imagePath = uploadImage($_FILES['content'], 'favicon');
        if ($imagePath) {
            $contentSettings->set('favicon', $imagePath);
        }
        
        // Author img
        $imagePath = uploadImage($_FILES['content'], 'author-img');
        if ($imagePath) {
            $contentSettings->set('author-img', $imagePath);
        }
    }
    
    // Перенаправление после сохранения
    header('Location: ' . $_SERVER['REQUEST_URI']);
    exit;
}

// Получение данных из настроек
$content = settings('content')->getAll();

$styles = settings('styles')->getAll();

$faqItems = [];
$menuItems = [];
$casinoItems = [];

// Получаем данные для FAQ из content группы
if (isset($content['faq']) && !empty($content['faq'])) {
    $decoded = json_decode($content['faq'], true);
    $faqItems = is_array($decoded) ? $decoded : [];
} else {
    $faqItems = [];
}

// Получаем данные для меню из content группы
if (isset($content['menu']) && !empty($content['menu'])) {
    $decoded = json_decode($content['menu'], true);
    $menuItems = is_array($decoded) ? $decoded : [];
} else {
    $menuItems = [];
}

// Получаем данные для казино из content группы
if (isset($content['casino_list']) && !empty($content['casino_list'])) {
    $decoded = json_decode($content['casino_list'], true);
    $casinoItems = is_array($decoded) ? $decoded : [];
} else {
    $casinoItems = [];
}

return ViewRender('admin/index.php', [
    'content' => $content,
    'styles' => $styles,
    'seo' => settings('seo')->getAll(),
    'jsonld' => settings('jsonld')->getAll(),
    'faqItems' => $faqItems,
    'menuItems' => $menuItems,
    'casinoItems' => $casinoItems
]);