import { readFile } from "node:fs/promises";
import path from "node:path";
import { galleryDirectory, listPhotos } from "@/lib/gallery-store";
import { isLocalAdmin } from "@/lib/admin-auth";
export async function GET(_request:Request,{params}:{params:Promise<{file:string}>}){
  const {file}=await params;
  if(!/^[a-f0-9-]{36}\.webp$/.test(file))return new Response(null,{status:404});
  const row=(await listPhotos()).find(p=>p.src===`/api/gallery-image/${file}`);
  if(!row||(!row.published&&!await isLocalAdmin()))return new Response(null,{status:404});
  try {const bytes=await readFile(path.join(galleryDirectory(),file));return new Response(new Uint8Array(bytes),{headers:{"Content-Type":"image/webp","X-Content-Type-Options":"nosniff","Cache-Control":"private, no-store"}});}
  catch{return new Response(null,{status:404});}
}
