export const dynamic = 'force-static';

import fs from 'fs';
import path from 'path';

export async function GET() {
  try {
    const dirPath = path.join(process.cwd(), 'assets', 'big-models');
    if (!fs.existsSync(dirPath)) {
      return new Response(JSON.stringify({ models: [] }), {
        status: 200,
        headers: { 'Content-Type': 'application/json' },
      });
    }

    const files = fs.readdirSync(dirPath, { withFileTypes: true });
    const models = files
      .filter((ent) => ent.isFile() && (ent.name.toLowerCase().endsWith('.glb') || ent.name.toLowerCase().endsWith('.gltf')))
      .map((ent) => {
        const filename = ent.name;
        const base = filename.replace(/\.(glb|gltf)$/i, '');
        let title = base; 
        title = title.replace(/^AerBIM-Monitor_ASM-HT-Viewer_/i, '');
        title = title.replace(/_/g, ' '); 
        title = title.replace(/\bLevel\b/gi, 'Уровень');
        title = title.replace(/\bcustom\s*prop\b/gi, '');
        title = title.replace(/\bcustom\b/gi, '');
        title = title.replace(/\bprop\b/gi, ''); 
        title = title.replace(/\s{2,}/g, ' ').trim();

        return { name: title, path: `/static-models/${filename}` };
      });

    return new Response(JSON.stringify({ models }), {
      status: 200,
      headers: { 'Content-Type': 'application/json' },
    });
  } catch (error) {
    console.error('[big-models/list] Error listing models:', error);
    const msg = error instanceof Error ? error.message : String(error);
    return new Response(JSON.stringify({ error: msg, models: [] }), {
      status: 500,
      headers: { 'Content-Type': 'application/json' },
    });
  }
}