/**
 * Website Content API Route
 *
 * GET: Load current website content
 * POST: Save changed content (Admin only)
 */

import { NextRequest, NextResponse } from 'next/server'
import { getContent, saveContent } from '@/lib/content'
import type { WebsiteContent } from '@/lib/content-types'

// GET - Load content
export async function GET() {
  try {
    const content = getContent()
    return NextResponse.json(content)
  } catch (error) {
    console.error('Error loading content:', error)
    return NextResponse.json(
      { error: 'Failed to load content' },
      { status: 500 }
    )
  }
}

// POST - Save content
export async function POST(request: NextRequest) {
  try {
    const adminKey = request.headers.get('x-admin-key')
    const expectedKey = process.env.ADMIN_API_KEY || 'breakpilot-admin-2024'

    if (adminKey !== expectedKey) {
      return NextResponse.json(
        { error: 'Unauthorized' },
        { status: 401 }
      )
    }

    const content: WebsiteContent = await request.json()

    if (!content.hero || !content.features || !content.faq || !content.pricing) {
      return NextResponse.json(
        { error: 'Invalid content structure' },
        { status: 400 }
      )
    }

    const result = saveContent(content)

    if (result.success) {
      return NextResponse.json({ success: true, message: 'Content saved' })
    } else {
      return NextResponse.json(
        { error: result.error || 'Failed to save content' },
        { status: 500 }
      )
    }
  } catch (error) {
    console.error('Error saving content:', error)
    return NextResponse.json(
      { error: error instanceof Error ? error.message : 'Failed to save content' },
      { status: 500 }
    )
  }
}
