﻿import { NextRequest, NextResponse } from "next/server"
import { deleteImage } from "@/lib/r2-storage"

export const dynamic = "force-dynamic"
export const revalidate = 0

const MAX_IDS = 80

function sanitizePublicIds(input: unknown): string[] {
  if (!Array.isArray(input)) return []
  const out: string[] = []
  for (const v of input) {
    if (typeof v !== "string") continue
    const id = v.trim()
    if (!id.startsWith("articles/")) continue
    out.push(id)
    if (out.length >= MAX_IDS) break
  }
  return out
}

/** Delete specific R2 inline images. Only `articles/*` media keys allowed. */
export async function POST(req: NextRequest) {
  try {
    const body = await req.json().catch(() => ({}))
    const publicIds = sanitizePublicIds((body as { publicIds?: unknown }).publicIds)
    if (publicIds.length === 0) {
      return NextResponse.json({ success: true as const, deleted: 0 })
    }
    await Promise.allSettled(publicIds.map((id) => deleteImage(id)))
    return NextResponse.json({ success: true as const, deleted: publicIds.length })
  } catch (err) {
    console.error("[articles] delete-inline-images error:", err)
    return NextResponse.json({ success: false as const, error: "Delete failed" }, { status: 500 })
  }
}
