petitspas/backend/src/routes/auth/auth.module.ts
Julien Martin 2fb53d20cf feat(auth): API inscription parent complete - Workflow 6 etapes
- Refonte complete de l'inscription parent (Tickets #18 et #19 fusionnes)
- Workflow CDC 6 etapes en 1 transaction atomique :
  * Etape 1 : Informations Parent 1 (obligatoire)
  * Etape 2 : Informations Parent 2 / Co-parent (optionnel)
  * Etape 3 : Enfants avec photos (au moins 1 requis)
  * Etape 4 : Presentation du dossier (optionnel)
  * Etape 5 : Acceptation CGU + Privacy (obligatoire)
  * Etape 6 : Recapitulatif -> VALIDATION

Modifications techniques :
- Nouveau DTO RegisterParentCompletDto (Parent1+Parent2+Enfants+Presentation+CGU)
- Nouveau DTO EnfantInscriptionDto pour les enfants
- Methode inscrireParentComplet() : transaction unique
- Generation tokens creation MDP (Parent 1 + Parent 2)
- Gestion photos enfants (base64 -> fichier)
- Liens parents-enfants via table parents_children
- Statut en_attente pour validation gestionnaire

Tests :
- Teste avec couple MARTIN + 3 triples (Emma, Noah, Lea)
- 2 parents crees + 3 enfants lies

Documentation :
- Ajout 99_REGLES-CODAGE.md : Convention francais/anglais
- Tickets Gitea mis a jour (#18 refonte, #19 ferme)

Refs: #18, #19
2025-12-01 22:42:56 +01:00

32 lines
1.1 KiB
TypeScript

import { forwardRef, Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AuthController } from './auth.controller';
import { AuthService } from './auth.service';
import { UserModule } from '../user/user.module';
import { JwtModule } from '@nestjs/jwt';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { Users } from 'src/entities/users.entity';
import { Parents } from 'src/entities/parents.entity';
import { Children } from 'src/entities/children.entity';
import { AppConfigModule } from 'src/modules/config';
@Module({
imports: [
TypeOrmModule.forFeature([Users, Parents, Children]),
forwardRef(() => UserModule),
AppConfigModule,
JwtModule.registerAsync({
imports: [ConfigModule],
useFactory: (config: ConfigService) => ({
secret: config.get('jwt.secret'),
signOptions: { expiresIn: config.get('jwt.expirationTime') },
}),
inject: [ConfigService],
})
],
controllers: [AuthController],
providers: [AuthService],
exports: [AuthService, JwtModule],
})
export class AuthModule {}