- Lieu naissance obligatoire (DTO), persistance Users + migration SQL - BDD.sql: colonnes lieu_naissance_*, tables dossier_famille / dossier_famille_enfants - inscrireAMComplet: places_available = capacite_accueil - GET dossier AM: user.lieu_naissance_*, consentement_photo - docs/TEMP_FRONT_alignement_AM.md pour équipe Flutter - Parité: email accusé AM, RegisterAmResponseDto (numero_dossier) Made-with: Cursor
65 lines
2.1 KiB
TypeScript
65 lines
2.1 KiB
TypeScript
import { ApiProperty } from '@nestjs/swagger';
|
|
import { StatutUtilisateurType } from 'src/entities/users.entity';
|
|
|
|
/** Utilisateur AM sans données sensibles (pour dossier AM complet). Ticket #119 */
|
|
export class DossierAmUserDto {
|
|
@ApiProperty()
|
|
id: string;
|
|
@ApiProperty()
|
|
email: string;
|
|
@ApiProperty({ required: false })
|
|
prenom?: string;
|
|
@ApiProperty({ required: false })
|
|
nom?: string;
|
|
@ApiProperty({ required: false })
|
|
telephone?: string;
|
|
@ApiProperty({ required: false })
|
|
adresse?: string;
|
|
@ApiProperty({ required: false })
|
|
ville?: string;
|
|
@ApiProperty({ required: false })
|
|
code_postal?: string;
|
|
@ApiProperty({ required: false })
|
|
profession?: string;
|
|
@ApiProperty({ required: false })
|
|
date_naissance?: Date;
|
|
@ApiProperty({ required: false, description: 'Ville de naissance' })
|
|
lieu_naissance_ville?: string;
|
|
@ApiProperty({ required: false, description: 'Pays de naissance' })
|
|
lieu_naissance_pays?: string;
|
|
@ApiProperty({ required: false })
|
|
photo_url?: string;
|
|
@ApiProperty({ required: false, description: 'Consentement utilisation photo' })
|
|
consentement_photo?: boolean;
|
|
@ApiProperty({ enum: StatutUtilisateurType })
|
|
statut: StatutUtilisateurType;
|
|
}
|
|
|
|
/** Dossier AM complet (fiche AM sans secrets). Ticket #119 */
|
|
export class DossierAmCompletDto {
|
|
@ApiProperty({ example: '2026-000003', description: 'Numéro de dossier AM' })
|
|
numero_dossier: string;
|
|
@ApiProperty({ type: DossierAmUserDto, description: 'Utilisateur (sans mot de passe ni tokens)' })
|
|
user: DossierAmUserDto;
|
|
@ApiProperty({ required: false })
|
|
numero_agrement?: string;
|
|
@ApiProperty({ required: false })
|
|
nir?: string;
|
|
@ApiProperty({ required: false })
|
|
biographie?: string;
|
|
@ApiProperty({ required: false })
|
|
disponible?: boolean;
|
|
@ApiProperty({ required: false })
|
|
ville_residence?: string;
|
|
@ApiProperty({ required: false })
|
|
date_agrement?: Date;
|
|
@ApiProperty({ required: false })
|
|
annees_experience?: number;
|
|
@ApiProperty({ required: false })
|
|
specialite?: string;
|
|
@ApiProperty({ required: false })
|
|
nb_max_enfants?: number;
|
|
@ApiProperty({ required: false })
|
|
place_disponible?: number;
|
|
}
|