<?php

declare(strict_types=1);

namespace Database\Seeders;

use App\Models\NovaCardTemplate;
use Illuminate\Database\Seeder;

class NovaCardTemplateSeeder extends Seeder
{
    public function run(): void
    {
        $templates = [
            [
                'slug' => 'minimal-black-white',
                'name' => 'Minimal Black / White',
                'description' => 'High-contrast minimalist typography.',
                'formats' => ['square', 'portrait', 'landscape'],
                'config' => ['font_preset' => 'minimal-editorial', 'gradient_preset' => 'deep-cinema', 'text_align' => 'left', 'layout' => 'minimal', 'text_color' => '#ffffff', 'overlay_style' => 'dark-soft'],
            ],
            [
                'slug' => 'neon-nova',
                'name' => 'Neon Nova',
                'description' => 'Bright accents with deep night gradients.',
                'formats' => ['square', 'portrait', 'story'],
                'config' => ['font_preset' => 'bold-poster', 'gradient_preset' => 'midnight-nova', 'text_align' => 'center', 'layout' => 'centered', 'text_color' => '#e0f2fe', 'overlay_style' => 'dark-strong'],
            ],
            [
                'slug' => 'soft-pastel',
                'name' => 'Soft Pastel',
                'description' => 'Soft pastel tones for uplifting cards.',
                'formats' => ['square', 'portrait'],
                'config' => ['font_preset' => 'soft-handwritten', 'gradient_preset' => 'soft-pastel', 'text_align' => 'center', 'layout' => 'quote_heavy', 'text_color' => '#1f2937', 'overlay_style' => 'light-soft'],
            ],
            [
                'slug' => 'romantic',
                'name' => 'Romantic',
                'description' => 'Warm romantic quote treatments.',
                'formats' => ['square', 'portrait', 'story'],
                'config' => ['font_preset' => 'elegant-serif', 'gradient_preset' => 'romantic-dusk', 'text_align' => 'center', 'layout' => 'author_emphasis', 'text_color' => '#fff1f2', 'overlay_style' => 'dark-soft'],
            ],
            [
                'slug' => 'cinematic-dark',
                'name' => 'Cinematic Dark',
                'description' => 'Moody cinematic composition.',
                'formats' => ['square', 'portrait', 'landscape'],
                'config' => ['font_preset' => 'modern-sans', 'gradient_preset' => 'deep-cinema', 'text_align' => 'left', 'layout' => 'quote_heavy', 'text_color' => '#f8fafc', 'overlay_style' => 'dark-strong'],
            ],
            [
                'slug' => 'golden-serif',
                'name' => 'Golden Serif',
                'description' => 'Elegant serif layout with warm highlights.',
                'formats' => ['square', 'portrait', 'landscape'],
                'config' => ['font_preset' => 'elegant-serif', 'gradient_preset' => 'amber-glow', 'text_align' => 'center', 'layout' => 'author_emphasis', 'text_color' => '#fffbeb', 'overlay_style' => 'dark-soft'],
            ],
            [
                'slug' => 'nature-calm',
                'name' => 'Nature Calm',
                'description' => 'Fresh greens and sky tones.',
                'formats' => ['square', 'portrait', 'story'],
                'config' => ['font_preset' => 'dreamy-aesthetic', 'gradient_preset' => 'nature-calm', 'text_align' => 'left', 'layout' => 'centered', 'text_color' => '#ecfeff', 'overlay_style' => 'dark-soft'],
            ],
            [
                'slug' => 'bold-statement',
                'name' => 'Bold Statement',
                'description' => 'Large statement typography.',
                'formats' => ['square', 'portrait', 'landscape'],
                'config' => ['font_preset' => 'bold-poster', 'gradient_preset' => 'midnight-nova', 'text_align' => 'left', 'layout' => 'quote_heavy', 'text_color' => '#ffffff', 'overlay_style' => 'dark-strong'],
            ],
            [
                'slug' => 'wallpaper-style',
                'name' => 'Wallpaper Style',
                'description' => 'Spacious wallpaper-like composition.',
                'formats' => ['portrait', 'story', 'landscape'],
                'config' => ['font_preset' => 'dreamy-aesthetic', 'gradient_preset' => 'dream-glow', 'text_align' => 'center', 'layout' => 'minimal', 'text_color' => '#fdf4ff', 'overlay_style' => 'dark-soft'],
            ],
            [
                'slug' => 'story-vertical',
                'name' => 'Story Vertical',
                'description' => 'Tall mobile-first story layout.',
                'formats' => ['story'],
                'config' => ['font_preset' => 'modern-sans', 'gradient_preset' => 'emerald-bloom', 'text_align' => 'center', 'layout' => 'centered', 'text_color' => '#ecfdf5', 'overlay_style' => 'dark-soft'],
            ],
            [
                'slug' => 'dream-glow',
                'name' => 'Dream Glow',
                'description' => 'Glowing dreamy aesthetic template.',
                'formats' => ['square', 'portrait', 'story'],
                'config' => ['font_preset' => 'dreamy-aesthetic', 'gradient_preset' => 'dream-glow', 'text_align' => 'center', 'layout' => 'quote_heavy', 'text_color' => '#faf5ff', 'overlay_style' => 'dark-soft'],
            ],
            [
                'slug' => 'classic-typography',
                'name' => 'Classic Typography',
                'description' => 'Classic bookish quote treatment.',
                'formats' => ['square', 'portrait', 'landscape'],
                'config' => ['font_preset' => 'elegant-serif', 'gradient_preset' => 'amber-glow', 'text_align' => 'left', 'layout' => 'author_emphasis', 'text_color' => '#fff7ed', 'overlay_style' => 'dark-soft'],
            ],
        ];

        foreach ($templates as $index => $template) {
            NovaCardTemplate::query()->updateOrCreate(
                ['slug' => $template['slug']],
                [
                    'name' => $template['name'],
                    'description' => $template['description'],
                    'preview_image' => null,
                    'config_json' => $template['config'],
                    'supported_formats' => $template['formats'],
                    'active' => true,
                    'official' => true,
                    'order_num' => $index,
                ]
            );
        }
    }
}
