Matrice PO #154 : supprimer dossiers famille/AM, parents, enfants et comptes staff avec règles métier (placements clôturés, sans_enfant, cascade foyer, droits gestionnaire/admin). Poubelle en liste, dialogues de confirmation, garde-fou gestionnaire→gestionnaire. Inclut polish hauteur modale fiche AM.
59 lines
1.5 KiB
TypeScript
59 lines
1.5 KiB
TypeScript
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
import { StatutUtilisateurType } from 'src/entities/users.entity';
|
|
|
|
/** Ligne de liste GET /dossiers (#153). */
|
|
export class DossierListItemDto {
|
|
@ApiProperty({
|
|
enum: ['famille', 'assistante_maternelle'],
|
|
description: 'Type de dossier',
|
|
})
|
|
type: 'famille' | 'assistante_maternelle';
|
|
|
|
@ApiProperty({ example: '2026-000043' })
|
|
numero_dossier: string;
|
|
|
|
@ApiProperty({
|
|
example: 'Claire MARTIN & Thomas MARTIN',
|
|
description: 'Libellé affiché (noms)',
|
|
})
|
|
libelle: string;
|
|
|
|
@ApiProperty({
|
|
type: [String],
|
|
example: ['claire@example.com', 'thomas@example.com'],
|
|
})
|
|
emails: string[];
|
|
|
|
@ApiProperty({
|
|
type: [String],
|
|
format: 'uuid',
|
|
description: 'IDs utilisateur liés au dossier (parents du foyer ou AM)',
|
|
})
|
|
user_ids: string[];
|
|
|
|
@ApiProperty({
|
|
enum: StatutUtilisateurType,
|
|
description:
|
|
'Statut agrégé : en_attente si au moins un user en_attente, sinon statut du premier',
|
|
})
|
|
statut: StatutUtilisateurType;
|
|
|
|
@ApiProperty({
|
|
description: 'True si le dossier est en attente de validation (section haute UI)',
|
|
})
|
|
a_valider: boolean;
|
|
|
|
@ApiPropertyOptional({
|
|
nullable: true,
|
|
example: '2026-01-12T10:00:00.000Z',
|
|
description: 'Date de référence (MIN cree_le des users du dossier)',
|
|
})
|
|
date_reference: string | null;
|
|
|
|
@ApiPropertyOptional({
|
|
description:
|
|
'True si dossier famille sans enfant lié (#159). Omis ou false pour AM.',
|
|
})
|
|
sans_enfant?: boolean;
|
|
}
|