Squash merge develop → master. - #138 : modale enfant paysage, zone AM/scolarisation, liens responsables - #144 : persistance consent_photo à l'inscription enfant - #143 : masquer Supprimer sur la propre fiche gestionnaire Co-authored-by: Cursor <cursoragent@cursor.com>
73 lines
2.3 KiB
TypeScript
73 lines
2.3 KiB
TypeScript
import { ApiProperty } from '@nestjs/swagger';
|
|
import {
|
|
IsString,
|
|
IsNotEmpty,
|
|
IsOptional,
|
|
IsEnum,
|
|
IsDateString,
|
|
IsBoolean,
|
|
MinLength,
|
|
MaxLength,
|
|
} from 'class-validator';
|
|
import { GenreType } from 'src/entities/children.entity';
|
|
|
|
export class EnfantInscriptionDto {
|
|
@ApiProperty({ example: 'Emma', required: false, description: 'Prénom de l\'enfant (obligatoire si déjà né)' })
|
|
@IsOptional()
|
|
@IsString()
|
|
@MinLength(2, { message: 'Le prénom doit contenir au moins 2 caractères' })
|
|
@MaxLength(100, { message: 'Le prénom ne peut pas dépasser 100 caractères' })
|
|
prenom?: string;
|
|
|
|
@ApiProperty({ example: 'MARTIN', required: false, description: 'Nom de l\'enfant (hérité des parents si non fourni)' })
|
|
@IsOptional()
|
|
@IsString()
|
|
@MinLength(2, { message: 'Le nom doit contenir au moins 2 caractères' })
|
|
@MaxLength(100, { message: 'Le nom ne peut pas dépasser 100 caractères' })
|
|
nom?: string;
|
|
|
|
@ApiProperty({ example: '2023-02-15', required: false, description: 'Date de naissance (si enfant déjà né)' })
|
|
@IsOptional()
|
|
@IsDateString()
|
|
date_naissance?: string;
|
|
|
|
@ApiProperty({ example: '2025-06-15', required: false, description: 'Date prévisionnelle de naissance (si enfant à naître)' })
|
|
@IsOptional()
|
|
@IsDateString()
|
|
date_previsionnelle_naissance?: string;
|
|
|
|
@ApiProperty({ enum: GenreType, example: GenreType.F })
|
|
@IsEnum(GenreType, { message: 'Le genre doit être H, F ou Autre' })
|
|
@IsNotEmpty({ message: 'Le genre est requis' })
|
|
genre: GenreType;
|
|
|
|
@ApiProperty({
|
|
example: 'data:image/jpeg;base64,/9j/4AAQSkZJRg...',
|
|
required: false,
|
|
description: 'Photo de l\'enfant en base64 (obligatoire si déjà né)'
|
|
})
|
|
@IsOptional()
|
|
@IsString()
|
|
photo_base64?: string;
|
|
|
|
@ApiProperty({ example: 'emma_martin.jpg', required: false, description: 'Nom du fichier photo' })
|
|
@IsOptional()
|
|
@IsString()
|
|
photo_filename?: string;
|
|
|
|
@ApiProperty({ example: false, required: false, description: 'Grossesse multiple (jumeaux, triplés, etc.)' })
|
|
@IsOptional()
|
|
@IsBoolean()
|
|
grossesse_multiple?: boolean;
|
|
|
|
@ApiProperty({
|
|
example: true,
|
|
required: false,
|
|
description: 'Consentement affichage / stockage photo (colonne enfants.consentement_photo)',
|
|
})
|
|
@IsOptional()
|
|
@IsBoolean()
|
|
consent_photo?: boolean;
|
|
}
|
|
|