Back: PATCH /parents/:id/fiche, attach/detach enfant, GET /enfants enrichi. Front: modale parent éditable, onglet Enfants, fiche enfant, UserService. Couvre doc 28 §6.1–6.2 ; tickets liés #115 #116 #130 #131 #137 #138. Hors scope: fiche AM (#131), création admin (#129). Co-authored-by: Cursor <cursoragent@cursor.com>
58 lines
1.3 KiB
TypeScript
58 lines
1.3 KiB
TypeScript
import { ApiPropertyOptional } from '@nestjs/swagger';
|
|
import {
|
|
IsEmail,
|
|
IsEnum,
|
|
IsOptional,
|
|
IsString,
|
|
MaxLength,
|
|
} from 'class-validator';
|
|
import { StatutUtilisateurType } from 'src/entities/users.entity';
|
|
|
|
/** Mise à jour fiche parent par admin/gestionnaire (doc 28 §6.1, ticket #131). */
|
|
export class UpdateParentFicheAdminDto {
|
|
@ApiPropertyOptional({ example: 'Dupont' })
|
|
@IsOptional()
|
|
@IsString()
|
|
@MaxLength(100)
|
|
nom?: string;
|
|
|
|
@ApiPropertyOptional({ example: 'Marie' })
|
|
@IsOptional()
|
|
@IsString()
|
|
@MaxLength(100)
|
|
prenom?: string;
|
|
|
|
@ApiPropertyOptional({ example: 'marie.dupont@example.com' })
|
|
@IsOptional()
|
|
@IsEmail()
|
|
email?: string;
|
|
|
|
@ApiPropertyOptional({ example: '+33612345678' })
|
|
@IsOptional()
|
|
@IsString()
|
|
@MaxLength(20)
|
|
telephone?: string;
|
|
|
|
@ApiPropertyOptional({ example: '10 rue de la Paix' })
|
|
@IsOptional()
|
|
@IsString()
|
|
adresse?: string;
|
|
|
|
@ApiPropertyOptional({ example: 'Paris' })
|
|
@IsOptional()
|
|
@IsString()
|
|
@MaxLength(150)
|
|
ville?: string;
|
|
|
|
@ApiPropertyOptional({ example: '75001' })
|
|
@IsOptional()
|
|
@IsString()
|
|
@MaxLength(10)
|
|
code_postal?: string;
|
|
|
|
@ApiPropertyOptional({ enum: StatutUtilisateurType })
|
|
@IsOptional()
|
|
@IsEnum(StatutUtilisateurType)
|
|
statut?: StatutUtilisateurType;
|
|
}
|