/**
 * ═══════════════════════════════════════════════════
 * 铸渊封面工作室 · 模板注册表
 * ═══════════════════════════════════════════════════
 *
 * 所有模板在此注册。新增模板只需：
 * 1. 在 templates/ 下创建模板文件
 * 2. 在此文件 import + 注册
 * 3. 核心代码零改动
 */

import { xiaohongshuCard } from './xiaohongshu.js'

/**
 * 模板注册表
 */
export const TEMPLATE_REGISTRY = {

  xiaohongshu: {
    id: 'xiaohongshu',
    name: '小红书封面',
    description: '1080×1440 · 3:4 竖版 · 适合小红书笔记封面',
    icon: '📕',
    sizes: { width: 1080, height: 1440 },
    category: '封面',
    isDefault: true,
    instructions: '输入标题和正文，自动排版生成小红书封面。支持金句、干货列表、教程等多种布局。',
    features: ['智能排版', '金句模式', '干货列表', '多页轮播'],
    presets: [
      {
        id: 'tech',
        name: '科技蓝',
        cssVars: {
          '--bg': '#0a0e27',
          '--primary': '#e0e6ff',
          '--accent': '#4f8cff',
          '--highlight': '#00d4ff',
          '--gold': '#ffb347',
          '--warm': '#1a1f3a',
          '--text': '#c8d6e5',
          '--textMuted': '#6b7d99',
          '--cardBg': '#121838',
          '--border': '#1e2a4a',
        },
      },
      {
        id: 'warm',
        name: '奶油暖调',
        cssVars: {
          '--bg': '#fef7f0',
          '--primary': '#5d4037',
          '--accent': '#e07a5f',
          '--highlight': '#d4a373',
          '--gold': '#c9a96e',
          '--warm': '#fae1dd',
          '--text': '#3e2723',
          '--textMuted': '#8d6e63',
          '--cardBg': '#ffffff',
          '--border': '#f0e6d3',
        },
      },
      {
        id: 'minimal',
        name: '极简黑白',
        cssVars: {
          '--bg': '#ffffff',
          '--primary': '#111111',
          '--accent': '#333333',
          '--highlight': '#ff4757',
          '--gold': '#999999',
          '--warm': '#f5f5f5',
          '--text': '#222222',
          '--textMuted': '#888888',
          '--cardBg': '#fafafa',
          '--border': '#e0e0e0',
        },
      },
      {
        id: 'rose',
        name: '玫瑰粉调',
        cssVars: {
          '--bg': '#fdf2f8',
          '--primary': '#4a1942',
          '--accent': '#9d4e8d',
          '--highlight': '#e8435e',
          '--gold': '#c9a96e',
          '--warm': '#fce4ec',
          '--text': '#311b2e',
          '--textMuted': '#8e6290',
          '--cardBg': '#ffffff',
          '--border': '#f0d4e0',
        },
      },
      {
        id: 'green',
        name: '文艺绿植',
        cssVars: {
          '--bg': '#f5f9f2',
          '--primary': '#1b3a1b',
          '--accent': '#5a8f5a',
          '--highlight': '#c78b5c',
          '--gold': '#b8a06e',
          '--warm': '#e8f0e0',
          '--text': '#2d3e2f',
          '--textMuted': '#6b8b6b',
          '--cardBg': '#ffffff',
          '--border': '#d4e4cc',
        },
      },
    ],
    render: xiaohongshuCard,
  },

  /* ── 后续接入（模板文件待创建时取消注释即可）── */
  // poster: { ... },
  // jike: { ... },
  // dynamic: { ... },
}


/** 获取所有可用模板列表 */
export function listTemplates() {
  return Object.values(TEMPLATE_REGISTRY).map(t => ({
    id: t.id,
    name: t.name,
    description: t.description,
    icon: t.icon,
    sizes: t.sizes,
    category: t.category,
    features: t.features,
    instructions: t.instructions,
    presets: t.presets.map(p => ({ id: p.id, name: p.name })),
    isDefault: t.isDefault,
  }))
}

/** 获取单个模板 */
export function getTemplate(id) {
  return TEMPLATE_REGISTRY[id] || null
}

/** 获取默认模板 */
export function getDefaultTemplate() {
  return Object.values(TEMPLATE_REGISTRY).find(t => t.isDefault)
    || Object.values(TEMPLATE_REGISTRY)[0]
}

/** 根据模板+预设+内容，准备渲染数据 */
export function prepareRenderData(templateId, presetId, contentData) {
  const template = getTemplate(templateId)
  if (!template) return null

  const preset = template.presets.find(p => p.id === presetId)
    || template.presets[0]

  return {
    ...contentData,
    templateId,
    presetId: preset?.id || 'default',
    cssVars: preset?.cssVars || {},
    sizes: template.sizes,
  }
}
