Vue d'ensemble des Modules
La plateforme MyTelevision API est composee de 72 modules NestJS organises selon les principes de Clean Architecture. Chaque module encapsule un domaine fonctionnel specifique et suit une structure en couches coherente.
Architecture des Modules
Chaque module respecte la separation en couches suivante :
Regles de dependance
- Presentation depend de Application
- Application depend de Domain
- Infrastructure implemente les interfaces du Domain
- Domain n'a aucune dependance
Structure type d'un module
module/
├── application/
│ ├── dtos/ # Data Transfer Objects (validation)
│ └── services/ # Logique metier
├── domain/
│ ├── entities/ # Entites du domaine
│ └── interfaces/ # Interfaces des repositories
├── infrastructure/
│ ├── repositories/ # Implementations Prisma
│ └── guards/ # Guards d'authentification/autorisation
└── presentation/
├── controllers/ # Endpoints HTTP (api/v2/)
└── modules/ # Definition du module NestJS
Categories de Modules
Authentification et Securite
| Module | Description | Statut | Endpoints |
|---|---|---|---|
| Auth | Authentification JWT, login/register | Production | 8 |
| Social Auth | Firebase (Google, Apple, Facebook) | Production | 6 |
| Account Auth | Authentification par compte (multi-profil) | Production | 8 |
| JWT | Strategies et guards JWT | Production | - |
| Firebase | Integration Firebase Admin SDK | Production | - |
| Guards | JwtAuthGuard, RolesGuard, StreamTokenGuard | Production | - |
| Rate Limiting | Throttling par profil (short/medium/long) | Production | - |
Gestion des Comptes et Utilisateurs
| Module | Description | Statut | Endpoints |
|---|---|---|---|
| Users | CRUD utilisateurs, roles, statuts | Production | 4 |
| Accounts | Comptes multi-profils (Netflix-grade) | Production | 10 |
| Profiles | Gestion des profils (max 4/compte) | Production | 15 |
| Devices | Enregistrement et gestion des appareils | Production | 6 |
| Sessions | Sessions actives, heartbeat | Production | 8 |
| Account Deletion | Suppression RGPD (retractation 30j) | Production | 5 |
| Tenants | Multi-tenant, branding, configuration | Production | 5 |
Contenu Media
| Module | Description | Statut | Endpoints |
|---|---|---|---|
| Movies | Catalogue de films (TMDB enrichment) | Production | 12 |
| Series | Series TV avec saisons et episodes | Production | 15 |
| Seasons | Saisons d'une serie | Production | 8 |
| Episodes | Episodes d'une saison | Production | 10 |
| Live TV | Chaines de television en direct | Production | 8 |
| Radio | Stations de radio en streaming | Production | 8 |
| Podcasts | Collections et episodes de podcasts | Production | 12 |
| Podcast Themes | Categories/themes de podcasts | Production | 6 |
| Replays | Rediffusions (categories, collections, episodes) | Production | 15 |
| News | Articles d'actualite | Production | 10 |
| Live Events | Evenements en direct | Production | 8 |
| Sliders | Carrousels de contenu (homepage) | Production | 6 |
Streaming et Lecture
| Module | Description | Statut | Endpoints |
|---|---|---|---|
| Streaming | Generation et validation de tokens | Production | 6 |
| DRM | Gestion des cles AES-128 | Production | 3 |
| Token Service | Tokens securises (IP binding, TTL) | Production | - |
| Quality | Adaptation qualite (SD/HD/FHD/4K) | Production | - |
Engagement Utilisateur
| Module | Description | Statut | Endpoints |
|---|---|---|---|
| Reactions | Like/Dislike sur le contenu | Production | 8 |
| Views | Suivi des vues (anti-abus) | Production | 6 |
| Favorites | Favoris/bookmarks utilisateur | Production | 5 |
| Watch History | Historique de visionnage | Production | 4 |
| Signals | Signaux de recommandation | Production | 9 |
Paiements et Abonnements
| Module | Description | Statut | En Dev. |
|---|---|---|---|
| Subscriptions | Plans d'abonnement (Free/Basic/Premium/Ultimate) | En Dev. | 6 |
| Payments | Traitement des paiements | En Dev. | 4 |
| Stripe | Integration Stripe (webhooks, intents) | En Dev. | 3 |
| PayPal | Integration PayPal | En Dev. | 3 |
| Apple Pay | Integration Apple Pay | En Dev. | 2 |
| Google Pay | Integration Google Pay | En Dev. | 2 |
| Invoices | Generation de factures | En Dev. | 3 |
| Webhooks | Gestion des webhooks paiement | En Dev. | 4 |
Notifications
| Module | Description | Statut | En Dev. |
|---|---|---|---|
| Notifications | Orchestration des notifications | En Dev. | 8 |
| Push | Notifications push (FCM, APNs) | En Dev. | 4 |
| Notifications email (SES, SendGrid) | En Dev. | 3 | |
| Templates | Templates email (Handlebars) | En Dev. | - |
| Device Tokens | Enregistrement tokens push | En Dev. | 2 |
| Preferences | Preferences de notification | En Dev. | 2 |
Administration
| Module | Description | Statut | Endpoints |
|---|---|---|---|
| Admin Auth | Authentification admin | Production | 3 |
| Admin Movies | CRUD admin films | Production | 8 |
| Admin Series | CRUD admin series | Production | 10 |
| Admin Live TV | CRUD admin chaines TV | Production | 6 |
| Admin Radio | CRUD admin radio | Production | 6 |
| Admin Podcasts | CRUD admin podcasts | Production | 8 |
| Admin News | CRUD admin actualites | Production | 6 |
| Admin Events | CRUD admin evenements | Production | 6 |
| Admin Sliders | CRUD admin carrousels | Production | 5 |
| Admin Users | Gestion admin utilisateurs | Production | 6 |
| Admin Sync | Synchronisation sources externes | Production | 8 |
Infrastructure et Services Transversaux
| Module | Description | Statut |
|---|---|---|
| Prisma | Service et module ORM (PostgreSQL) | Production |
| Redis/Cache | Service de cache distribue | Production |
| Storage (R2) | Stockage Cloudflare R2 (S3-compatible) | Production |
| TMDb | Integration API TMDb (auto-fill) | Production |
| I18n | Internationalisation (fr_FR, en_US) | Production |
| Config | Modules de configuration (app, db, redis, jwt, etc.) | Production |
| Metrics | Metriques Prometheus custom | Production |
| Health | Health checks (readiness, liveness) | Production |
| Logger | Logging structure (NestJS Logger) | Production |
Securite et Risque
| Module | Description | Statut | Endpoints |
|---|---|---|---|
| Risk | Scoring de risque (rules-based) | Production | 5 |
| Parental Controls | Controle parental (PIN, age, horaires) | Production | 4 |
| Kids Profile | Profils enfants avec restrictions | Production | 3 |
Communication entre Modules
Creation d'un Nouveau Module
# Generer la structure du module
nest g module presentation/modules/new-feature
nest g controller presentation/controllers/api/v2/new-feature
nest g service application/services/new-feature
# Creer les DTOs
mkdir -p src/application/dtos/new-feature
Statistiques
| Metrique | Valeur |
|---|---|
| Modules NestJS | 72 |
| Endpoints totaux | 587+ |
| Endpoints publics | 204 |
| Endpoints admin | 316 |
| Endpoints compte/profil | 66 |
| Suites de tests | 157 |
| Tests unitaires | 4 058 |