<?php

namespace Modules\VetSite\Support;

/**
 * Catalogue of the bundled website themes. Each theme is a self-contained
 * Blade layout + CSS file under Resources/views/themes/{key}/. Blocks are
 * shared (Resources/views/blocks/*) and restyled per theme via a body class
 * `theme-{key}` and the theme stylesheet.
 */
class ThemeRegistry
{
    public static function all(): array
    {
        return [
            'aurora' => [
                'key'         => 'aurora',
                'name'        => 'Aurora',
                'tagline'     => 'Modern gradient & glassmorphism',
                'description' => 'Vibrant gradients, frosted-glass cards and smooth motion. A fresh, premium feel for forward-looking clinics.',
                'palette'     => ['primary' => '#6366f1', 'secondary' => '#0f172a', 'accent' => '#22d3ee'],
                'fonts'       => ['heading' => 'Poppins', 'body' => 'Inter'],
                'dark'        => false,
            ],
            'meadow' => [
                'key'         => 'meadow',
                'name'        => 'Meadow',
                'tagline'     => 'Warm, friendly & rounded',
                'description' => 'Soft greens, rounded shapes and welcoming typography. Approachable and caring — perfect for family & companion-animal practices.',
                'palette'     => ['primary' => '#16a34a', 'secondary' => '#14532d', 'accent' => '#f59e0b'],
                'fonts'       => ['heading' => 'Quicksand', 'body' => 'Nunito'],
                'dark'        => false,
            ],
            'pulse' => [
                'key'         => 'pulse',
                'name'        => 'Pulse',
                'tagline'     => 'Bold dark mode with neon energy',
                'description' => 'High-contrast dark UI with electric accents and kinetic animation. Built for emergency & 24/7 hospitals that want to look unstoppable.',
                'palette'     => ['primary' => '#f43f5e', 'secondary' => '#0b1020', 'accent' => '#22d3ee'],
                'fonts'       => ['heading' => 'Sora', 'body' => 'Inter'],
                'dark'        => true,
            ],
            'heritage' => [
                'key'         => 'heritage',
                'name'        => 'Heritage',
                'tagline'     => 'Elegant, classic & trustworthy',
                'description' => 'Refined serif headings, generous spacing and understated motion. Conveys experience and trust for established practices.',
                'palette'     => ['primary' => '#0f766e', 'secondary' => '#1c1917', 'accent' => '#b45309'],
                'fonts'       => ['heading' => 'Playfair Display', 'body' => 'Source Sans 3'],
                'dark'        => false,
            ],
            'minimal' => [
                'key'         => 'minimal',
                'name'        => 'Minimal',
                'tagline'     => 'Swiss whitespace & sharp type',
                'description' => 'Ultra-clean, typographic and content-first with crisp micro-interactions. Lets your photography and words do the talking.',
                'palette'     => ['primary' => '#111827', 'secondary' => '#111827', 'accent' => '#2563eb'],
                'fonts'       => ['heading' => 'Space Grotesk', 'body' => 'Inter'],
                'dark'        => false,
            ],

            // ── Structurally-distinct layouts (own nav / hero / sections / footer) ──
            'velvet' => [
                'key'         => 'velvet',
                'name'        => 'Velvet Vet',
                'tagline'     => 'Curved, premium veterinary layout',
                'description' => 'A full premium vet-clinic layout: top contact bar, curved hero with a floating appointment card, colourful service tiles, a "why choose us" checklist and a newsletter footer. A completely different site structure — not just colours.',
                'palette'     => ['primary' => '#14b8a6', 'secondary' => '#0f3d3a', 'accent' => '#f59e0b'],
                'fonts'       => ['heading' => 'Plus Jakarta Sans', 'body' => 'Inter'],
                'dark'        => false,
                'distinct'    => true,
            ],
            'playful' => [
                'key'         => 'playful',
                'name'        => 'Playful Paws',
                'tagline'     => 'Bold, rounded & illustrative',
                'description' => 'A fun, high-energy layout with oversized rounded type, sticker-style badges, blob shapes and alternating zig-zag sections. Inspired by playful pet-care templates — a totally different structure and personality.',
                'palette'     => ['primary' => '#ff6b6b', 'secondary' => '#2d2a54', 'accent' => '#ffd166'],
                'fonts'       => ['heading' => 'Baloo 2', 'body' => 'Nunito'],
                'dark'        => false,
                'distinct'    => true,
            ],
            'clinic' => [
                'key'         => 'clinic',
                'name'        => 'Medico Clinic',
                'tagline'     => 'Trusted medical / hospital layout',
                'description' => 'A clean, clinical hospital layout: info top bar, a full-bleed hero with a quick-appointment bar, department-style service cards, doctors and a corporate blue footer. Ideal for full-service veterinary hospitals.',
                'palette'     => ['primary' => '#2563eb', 'secondary' => '#0b2545', 'accent' => '#06b6d4'],
                'fonts'       => ['heading' => 'Sora', 'body' => 'Inter'],
                'dark'        => false,
                'distinct'    => true,
            ],
            'storefront' => [
                'key'         => 'storefront',
                'name'        => 'Pet Store',
                'tagline'     => 'E-commerce pet-shop landing',
                'description' => 'A retail storefront: search + cart header, promo hero with a sale badge, shop-by-category tiles, best-seller product cards with prices and discount banners. For clinics with a pet-shop / online store.',
                'palette'     => ['primary' => '#ff7a59', 'secondary' => '#161a2b', 'accent' => '#13c2a3'],
                'fonts'       => ['heading' => 'Sora', 'body' => 'Inter'],
                'dark'        => false,
                'distinct'    => true,
            ],
            'grooming' => [
                'key'         => 'grooming',
                'name'        => 'Grooming Spa',
                'tagline'     => 'Elegant grooming & spa salon',
                'description' => 'A refined, luxe salon layout with serif headlines, soft pastels, generous spacing, pricing packages and a "book a pampering session" feel. Perfect for grooming and pet-spa businesses.',
                'palette'     => ['primary' => '#d6638a', 'secondary' => '#2a1f2d', 'accent' => '#e6b566'],
                'fonts'       => ['heading' => 'Marcellus', 'body' => 'Jost'],
                'dark'        => false,
                'distinct'    => true,
            ],
            'shelter' => [
                'key'         => 'shelter',
                'name'        => 'Rescue Shelter',
                'tagline'     => 'Adoption & animal-shelter layout',
                'description' => 'A warm, mission-driven layout for shelters and rescues: emotive hero with adopt/donate calls, adoptable-pets grid, impact stats and a prominent donate button. Community-focused and heartfelt.',
                'palette'     => ['primary' => '#ea580c', 'secondary' => '#173b3a', 'accent' => '#14b8a6'],
                'fonts'       => ['heading' => 'Poppins', 'body' => 'Inter'],
                'dark'        => false,
                'distinct'    => true,
            ],
        ];
    }

    public static function keys(): array
    {
        return array_keys(static::all());
    }

    public static function exists(string $key): bool
    {
        return array_key_exists($key, static::all());
    }

    public static function get(string $key): array
    {
        $all = static::all();
        return $all[$key] ?? $all['aurora'];
    }
}
