#!/usr/bin/env node

/**
 * Script de serve pour le radar stand-alone
 * Remplace "techradar serve" en servant soit build/ soit en lançant le dev server Next.js
 */

const fs = require('fs');
const path = require('path');
const { execSync } = require('child_process');

const CWD = process.cwd();
const BUILD_DIR = path.join(CWD, 'build');
const RADAR_APP_DIR = path.join(CWD, 'radar-app');
const PORT = process.env.PORT || '3000';

// Mode: 'build' pour servir build/, 'dev' pour lancer Next.js dev
const MODE = process.argv[2] || 'build';

if (MODE === 'dev') {
  // Mode développement: lancer Next.js dev dans radar-app
  console.log('🚀 Démarrage du serveur de développement Next.js...');
  console.log(`📍 URL: http://localhost:${PORT}/`);
  try {
    process.chdir(RADAR_APP_DIR);
    execSync(`npm run dev -- -p ${PORT}`, { stdio: 'inherit' });
  } catch (e) {
    console.error('Erreur lors du démarrage du serveur dev:', e.message);
    process.exit(1);
  }
} else {
  // Mode production: servir build/
  if (!fs.existsSync(BUILD_DIR)) {
    console.error(`❌ Dossier build/ introuvable. Lancez d'abord: npm run build`);
    process.exit(1);
  }
  console.log(`🚀 Démarrage du serveur statique sur http://localhost:${PORT}/`);
  console.log(`📁 Servant: ${BUILD_DIR}`);
  try {
    // Utiliser npx serve si disponible, sinon python http.server
    try {
      execSync(`npx serve@latest "${BUILD_DIR}" --listen ${PORT}`, { stdio: 'inherit' });
    } catch (e) {
      // Fallback sur python
      console.log('⚠️  npx serve non disponible, utilisation de python http.server');
      process.chdir(BUILD_DIR);
      execSync(`python3 -m http.server ${PORT}`, { stdio: 'inherit' });
    }
  } catch (e) {
    console.error('Erreur lors du démarrage du serveur:', e.message);
    process.exit(1);
  }
}
