import { NextRequest, NextResponse } from "next/server"
import { prisma } from "@/lib/prisma"
import { validateUrlSlug } from "@/lib/slug-validation"

export const dynamic = "force-dynamic"

export async function GET(req: NextRequest) {
  try {
    const url = new URL(req.url)
    const slug = url.searchParams.get("slug") ?? ""
    const excludeId = url.searchParams.get("excludeId") ?? null

    const normalizedSlug = slug.trim()
    const validation = validateUrlSlug(normalizedSlug)
    if (!validation.valid) {
      return NextResponse.json({ available: false, error: validation.error })
    }

    if (excludeId) {
      const existing = await prisma.article.findFirst({
        where: {
          slug: normalizedSlug,
          NOT: { id: excludeId },
        },
        select: { id: true },
      })
      return NextResponse.json({ available: !existing })
    } else {
      const existing = await prisma.article.findUnique({ where: { slug: normalizedSlug }, select: { id: true } })
      return NextResponse.json({ available: !existing })
    }
  } catch (err) {
    console.error("[articles] check-slug error:", err)
    return NextResponse.json({ available: false }, { status: 500 })
  }
}

