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

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

function sanitizeFolders(input: unknown): string[] {
  if (!Array.isArray(input)) return []
  return input
    .map((v) => (typeof v === "string" ? v.trim().replace(/\/+$/, "") : ""))
    .filter((v) => v.startsWith("articles/"))
}

async function cleanupFolders(folders: string[]) {
  for (const folder of folders) {
    await purgePrefixExcept(folder, [])
    await deletePrefixIfEmpty(folder)
  }
}

export async function POST(req: NextRequest) {
  try {
    const body = await req.json().catch(() => ({}))
    const folders = sanitizeFolders((body as { folders?: unknown }).folders)
    if (folders.length === 0) {
      return NextResponse.json({ success: true as const, cleaned: 0 })
    }
    await cleanupFolders(folders)
    return NextResponse.json({ success: true as const, cleaned: folders.length })
  } catch (err) {
    console.error("[articles] cleanup-draft-images error:", err)
    return NextResponse.json({ success: false as const, error: "Cleanup failed" }, { status: 500 })
  }
}
