<?php
declare(strict_types=1);

/**
 * Кейси Nestor Web Studio — єдине джерело даних для списку та сторінок проєктів.
 *
 * @return list<array{
 *   id: string,
 *   slug: string,
 *   title: string,
 *   type: string,
 *   description: string,
 *   image: string,
 *   tags: list<string>,
 *   task: string,
 *   done: list<string>,
 *   features: list<string>,
 *   result: string,
 *   result_lead?: string,
 *   gallery?: list<string>,
 *   case_visuals?: array<string, string>
 * }>
 */
function nestor_projects(): array
{
    static $list = null;
    if ($list !== null) {
        return $list;
    }

    $tags = ['Веб-дизайн', 'UI/UX', 'Mobile-first', 'Фотографія', 'Преміум'];

    /** Базовий перелік робіт для кейсу — розширений, без шаблонної сухості. */
    $doneBase = [
        'продумана структура сайту та шлях відвідувача до заявки',
        'адаптація під телефон, планшет і десктоп',
        'візуальна подача послуг і атмосфери бренду',
        'блоки портфоліо та матеріали, що підсилюють довіру',
        'кнопки заявки й контакти у ключових точках сценарію',
        'UX/UI: ясність, спокій, без зайвого шуму',
        'оформлення та типографіка під преміальний образ студії',
    ];

    /** Додайте сюди імена файлів у assets/images/projects/ для другої/третьої планки mockup. */
    $galleryEmpty = [];

    $list = [
        [
            'id' => 'velora-wedding',
            'slug' => 'velora-wedding',
            'title' => 'Velora Wedding',
            'type' => 'Лендінг для весільного фотографа',
            'description' => 'Емоційна подача, романтичний візуал і шлях клієнта до заявки.',
            'image' => 'velora-wedding-mockup-clean.png',
            'gallery' => $galleryEmpty,
            'tags' => $tags,
            'task' => 'Створити емоційний лендінг для весільного фотографа, який передає атмосферу, довіру та допомагає парам швидко перейти до заявки.',
            'done' => $doneBase,
            'features' => [
                'mobile-first підхід і швидке завантаження ключових блоків',
                'преміальний візуал без зайвого шуму',
                'чиста типографіка та повітряна композиція',
                'структура екранів під заявку та контакт',
            ],
            'result' => 'Сайт отримав м’яку романтичну подачу, зрозумілу структуру послуг і сильний перший екран.',
            'result_lead' => 'Результат кейсу',
        ],
        [
            'id' => 'lumiere-family',
            'slug' => 'lumiere-family',
            'title' => 'Lumiere Family',
            'type' => 'Сайт-портфоліо для сімейного фотографа',
            'description' => 'Теплий візуал, довіра з перших секунд і проста дорога до бронювання.',
            'image' => 'family-moments-mockup-clean.png',
            'gallery' => $galleryEmpty,
            'tags' => $tags,
            'task' => 'Показати сімейну фотографію через теплий, живий і довірливий візуал.',
            'done' => $doneBase,
            'features' => [
                'перший екран, який одразу задає настрій довіри',
                'подача послуг і прикладів зйомки в одному ритмі',
                'mobile-first: зручне бронювання з телефону',
                'структура під консультацію та заявку',
            ],
            'result' => 'Сайт виглядає ніжно, зрозуміло і допомагає клієнтам швидше відчути стиль фотографа.',
            'result_lead' => 'Результат кейсу',
        ],
        [
            'id' => 'soft-nest-studio',
            'slug' => 'soft-nest-studio',
            'title' => 'Soft Nest Studio',
            'type' => 'Сайт для newborn та maternity фотографа',
            'description' => 'Ніжна подача, спокійні акценти та сайт, який підкреслює турботу і стиль.',
            'image' => 'soft-nest-maternity-mockup-clean.png',
            'gallery' => $galleryEmpty,
            'tags' => $tags,
            'task' => 'Створити сайт для newborn та maternity фотографа з максимально ніжною і спокійною подачею.',
            'done' => $doneBase,
            'features' => [
                'світла палітра та повітря у верстці',
                'акцент на турботі та безпеці бренду',
                'чіткі блоки послуг без перевантаження текстом',
                'адаптивність для перегляду «на ходу»',
            ],
            'result' => 'Вийшла чиста, світла і турботлива презентація послуг, яка добре працює на мобільних.',
            'result_lead' => 'Результат кейсу',
        ],
        [
            'id' => 'astra-portrait',
            'slug' => 'astra-portrait',
            'title' => 'Astra Portrait',
            'type' => 'Сайт-портфоліо для fashion фотографа',
            'description' => 'Сильний візуал, преміальна подача і сайт, що підсилює особистий бренд.',
            'image' => 'atelier-mode-mockup-clean.png',
            'gallery' => $galleryEmpty,
            'tags' => $tags,
            'task' => 'Показати fashion-фотографа як сильний особистий бренд.',
            'done' => $doneBase,
            'features' => [
                'сміливий візуальний ритм і великі типографічні акценти',
                'портфоліо як головний доказ рівня',
                'чиста навігація між напрямами зйомки',
                'форма контакту без відволікань',
            ],
            'result' => 'Сайт отримав більш сміливу подачу, акцент на портфоліо і преміальний візуальний ритм.',
            'result_lead' => 'Результат кейсу',
            'case_visuals' => [
                /* Окремі кадри для сторінки кейсу (не для карток у списку). Покладіть PNG у assets/images/projects/ */
                'hero' => 'astra-portrait-hero.png',
                'desktop' => 'astra-portrait-desktop.png',
                'mobile' => 'astra-portrait-mobile.png',
                'details' => 'astra-portrait-details.png',
                'editorial' => 'astra-portrait-editorial.png',
            ],
        ],
        [
            'id' => 'aurelia-photo-studio',
            'slug' => 'aurelia-photo-studio',
            'title' => 'Aurelia Photo Studio',
            'type' => 'Сайт для фотостудії',
            'description' => 'Елегантна структура з акцентом на послуги, бронювання та візуальну довіру.',
            'image' => 'aurelia-photo-studio-mockup-clean.png',
            'gallery' => $galleryEmpty,
            'tags' => $tags,
            'task' => 'Створити сайт для фотостудії, де клієнт швидко бачить послуги, простір і можливість бронювання.',
            'done' => $doneBase,
            'features' => [
                'логіка «послуги → приклади → контакт»',
                'візуальна впевненість студії з перших секунд',
                'бронювання та CTA на кожному ключовому кроці',
                'уніфікована типографіка для різних блоків',
            ],
            'result' => 'Сайт має чисту структуру, елегантну подачу і зрозумілий шлях до заявки.',
            'result_lead' => 'Результат кейсу',
        ],
        [
            'id' => 'nord-muse',
            'slug' => 'nord-muse',
            'title' => 'Nord Muse',
            'type' => 'Сайт для personal brand фотографа',
            'description' => 'Чиста презентація послуг, експертний образ і структура, що веде до заявки.',
            'image' => 'malkina-photographer-mockup-clean.png',
            'gallery' => $galleryEmpty,
            'tags' => $tags,
            'task' => 'Презентувати personal brand фотографа через чистий, експертний і сучасний сайт.',
            'done' => $doneBase,
            'features' => [
                'акцент на експертності та особистому підході',
                'структура контенту під конверсію',
                'mobile-first для аудиторії з соцмереж',
                'преміальні відступи та спокійна подача',
            ],
            'result' => 'Сайт підкреслює професійність, структурує послуги і веде користувача до консультації.',
            'result_lead' => 'Результат кейсу',
        ],
        [
            'id' => 'maison-frame',
            'slug' => 'maison-frame',
            'title' => 'Maison Frame',
            'type' => 'Сайт для lifestyle фотографа',
            'description' => 'Легка сучасна подача, стильний візуал і зручна презентація послуг.',
            'image' => 'little-bloom-baby-mockup-clean.png',
            'gallery' => $galleryEmpty,
            'tags' => $tags,
            'task' => 'Створити lifestyle-сайт для фотографа з легкою, теплою і сучасною подачею.',
            'done' => $doneBase,
            'features' => [
                'візуальна легкість без «шаблонного» лендінгу',
                'послуги та приклади в одному спокійному ритмі',
                'чиста типографіка для довгих описів',
                'заклики до дії без нав’язливості',
            ],
            'result' => 'Сайт допомагає показати послуги, стиль фотографа і зробити бренд більш довірливим.',
            'result_lead' => 'Результат кейсу',
        ],
    ];

    return $list;
}

function nestor_project_by_slug(string $slug): ?array
{
    foreach (nestor_projects() as $p) {
        if ($p['slug'] === $slug) {
            return $p;
        }
    }
    return null;
}

/** Обрані для головної: Velora, Aurelia, Astra */
function nestor_featured_projects(): array
{
    $order = ['velora-wedding', 'aurelia-photo-studio', 'astra-portrait'];
    $map = [];
    foreach (nestor_projects() as $p) {
        $map[$p['slug']] = $p;
    }
    $out = [];
    foreach ($order as $slug) {
        if (isset($map[$slug])) {
            $out[] = $map[$slug];
        }
    }
    return $out;
}
