import { ApiPropertyOptional } from '@nestjs/swagger'; import { IsBoolean, IsDateString, IsEmail, IsEnum, IsInt, IsOptional, IsString, Max, MaxLength, Min, } from 'class-validator'; import { StatutUtilisateurType } from 'src/entities/users.entity'; /** Mise à jour fiche AM par admin/gestionnaire (doc 28 §6.1, ticket #131). */ export class UpdateAmFicheAdminDto { @ApiPropertyOptional({ example: 'MARTIN' }) @IsOptional() @IsString() @MaxLength(100) nom?: string; @ApiPropertyOptional({ example: 'Claire' }) @IsOptional() @IsString() @MaxLength(100) prenom?: string; @ApiPropertyOptional({ example: 'claire@example.com' }) @IsOptional() @IsEmail() email?: string; @ApiPropertyOptional({ example: '0612345678' }) @IsOptional() @IsString() @MaxLength(20) telephone?: string; @ApiPropertyOptional({ example: '5 place Bellecour' }) @IsOptional() @IsString() adresse?: string; @ApiPropertyOptional({ example: 'Lyon' }) @IsOptional() @IsString() @MaxLength(150) ville?: string; @ApiPropertyOptional({ example: '69002' }) @IsOptional() @IsString() @MaxLength(10) code_postal?: string; @ApiPropertyOptional({ enum: StatutUtilisateurType }) @IsOptional() @IsEnum(StatutUtilisateurType) statut?: StatutUtilisateurType; @ApiPropertyOptional({ example: '123456789012345' }) @IsOptional() @IsString() @MaxLength(15) nir?: string; @ApiPropertyOptional({ example: '1985-03-12' }) @IsOptional() @IsDateString() date_naissance?: string; @ApiPropertyOptional({ example: 'Lyon' }) @IsOptional() @IsString() @MaxLength(100) lieu_naissance_ville?: string; @ApiPropertyOptional({ example: 'France' }) @IsOptional() @IsString() @MaxLength(100) lieu_naissance_pays?: string; @ApiPropertyOptional({ example: 'AGR-2024-12345' }) @IsOptional() @IsString() @MaxLength(50) approval_number?: string; @ApiPropertyOptional({ example: '2020-01-15' }) @IsOptional() @IsDateString() agreement_date?: string; @ApiPropertyOptional({ example: 'Lyon' }) @IsOptional() @IsString() @MaxLength(100) residence_city?: string; @ApiPropertyOptional({ example: 4 }) @IsOptional() @IsInt() @Min(1) @Max(10) max_children?: number; @ApiPropertyOptional({ example: 2 }) @IsOptional() @IsInt() @Min(0) @Max(10) places_available?: number; @ApiPropertyOptional() @IsOptional() @IsString() biography?: string; @ApiPropertyOptional({ example: true }) @IsOptional() @IsBoolean() available?: boolean; }