<?php
declare(strict_types=1);

use Celena\Core\Database\Connection;
use Celena\Core\Database\Schema;

/**
 * Сид: при первой установке создаёт меню «header» и «footer» с базовыми
 * пунктами, повторяющими хардкод-навигацию старой шапки. Это позволяет
 * темам сразу использовать {menu name="header"} без необходимости вручную
 * заводить пункты в админке.
 *
 * Если меню с таким slug уже существует (даже с 0 пунктов) — оставляем как
 * есть и не добавляем дубликаты: пользователь мог уже что-то настроить.
 */
return function (Schema $schema, Connection $conn): void {
    if (!$schema->hasTable('celena_menus') || !$schema->hasTable('celena_menu_items')) {
        return;
    }

    $now = date('Y-m-d H:i:s');

    $seedMenu = function (string $slug, string $title, array $items) use ($conn, $now): void {
        $existing = $conn->builder('celena_menus')->where('slug', '=', $slug)->first();
        if ($existing !== null) return; // уже есть — не трогаем

        $menuId = (int) $conn->builder('celena_menus')->insert([
            'slug' => $slug,
            'title' => $title,
            'created_at' => $now,
            'updated_at' => $now,
        ]);

        $sort = 0;
        foreach ($items as $it) {
            $conn->builder('celena_menu_items')->insert([
                'menu_id'    => $menuId,
                'parent_id'  => null,
                'title'      => (string) $it['title'],
                'url'        => (string) $it['url'],
                'kind'       => (string) ($it['kind'] ?? 'external'),
                'object_id'  => null,
                'target'     => '_self',
                'icon'       => (string) ($it['icon'] ?? ''),
                'sort_order' => ++$sort * 10,
                'is_active'  => true,
                'created_at' => $now,
            ]);
        }
    };

    $seedMenu('header', 'Шапка сайта', [
        ['title' => 'Главная',  'url' => '/',          'kind' => 'external'],
        ['title' => 'Новости',  'url' => '/news',      'kind' => 'external'],
        ['title' => 'Магазин',  'url' => '/shop',      'kind' => 'external'],
        ['title' => 'О нас',    'url' => '/p/about',   'kind' => 'page'],
        ['title' => 'Контакты', 'url' => '/p/contact', 'kind' => 'page'],
    ]);

    $seedMenu('footer', 'Подвал сайта', [
        ['title' => 'О компании',           'url' => '/p/about',   'kind' => 'page'],
        ['title' => 'Контакты',             'url' => '/p/contact', 'kind' => 'page'],
        ['title' => 'Политика конфиденциальности', 'url' => '/p/privacy', 'kind' => 'page'],
        ['title' => 'Условия использования', 'url' => '/p/terms',   'kind' => 'page'],
    ]);
};
