import 'reflect-metadata';
import { Logger } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { assertDemoModeAllowed, loadEnv } from './config/env';

async function bootstrap() {
  const env = loadEnv();
  assertDemoModeAllowed(); // ADR-002 — double verrou avant toute écoute réseau

  const app = await NestFactory.create(AppModule.forRoot());
  const origines = env.CORS_ORIGINS.split(',').map((o) => o.trim()).filter(Boolean);
  if (origines.length) app.enableCors({ origin: origines });
  app.enableShutdownHooks();
  await app.listen(env.PORT);
  new Logger('Bootstrap').log(`API SIOP V2 démarrée sur :${env.PORT}`);
}

void bootstrap();
