# Serveur principal NestJS

## Rôle

Le backend Web principal est une application NestJS située dans `uniksim-back-end/`. Elle centralise les API utilisateur, jeu, administration, support, notifications, push, mail et IA.

## Démarrage

Le point d’entrée est `src/main.ts`.

- Attend `aiServerReady` avant de créer l’application NestJS.
- Crée l’application à partir de `AppModule`.
- Active CORS pour le frontend local sur `http://localhost:4200`.
- Autorise les payloads JSON et URL-encoded jusqu’à 50 MB.
- Ajoute l’en-tête HSTS.
- Écoute sur le port `3000`.

## Assemblage du backend

`src/app.module.ts` branche les principaux sous-systèmes :

- TypeORM et les entités métier.
- JWT global avec expiration de 4 heures.
- i18n.
- fichiers statiques frontend.
- HTTP externe.
- services utilisateurs, jeu, administration, IA, support, Redis, notifications, Firebase et présence.
- gateway WebSocket du support.

## Contrôleurs importants

- `LoginController` : connexion et création de compte.
- `UserController` : fonctionnalités utilisateur connecté.
- `GameController` : endpoints consommés par le jeu/WebGL.
- `AdminController`, `AdminUserController`, `AdminPresenceController` : administration.
- `SupportController`, `SupportAdminController` : support.
- `NotificationController`, `PushController` : notifications et push.