import 'reflect-metadata';
import { NestFactory } from '@nestjs/core';
import { Logger } from '@nestjs/common';
import { AppModule } from './app.module';
import { NestExpressApplication } from '@nestjs/platform-express';
import * as path from 'path';

async function bootstrap() {
  const logger = new Logger('Bootstrap');

  const app = await NestFactory.create<NestExpressApplication>(AppModule);

  // Отдаём всю папку public как статику
  app.useStaticAssets(path.join(__dirname, '..', 'public'));

  // Любой запрос отдаёт наш HTML (SPA fallback)
  app.getHttpAdapter().getInstance().get('*', (req, res) => {
    res.sendFile(path.join(__dirname, '..', 'public', 'infud_v6.4.html'));
  });

  const port = process.env.PORT || 3000;
  await app.listen(port, '0.0.0.0');

  logger.log(`\n═══════════════════════════════════════════════════════════════`);
  logger.log(`  ИНФУД v6.4 NestJS — Успешно запущен`);
  logger.log(`  URL:      http://localhost:${port}`);
  logger.log(`  Frontend: http://localhost:${port}/infud_v6.4.html`);
  logger.log(`═══════════════════════════════════════════════════════════════\n`);
}

bootstrap().catch(err => {
  console.error('[FATAL] Ошибка запуска:', err);
  process.exit(1);
});
