feat(#119): GET /parents/dossier-famille/:numeroDossier - dossier famille complet (admin/gestionnaire)

Made-with: Cursor
This commit is contained in:
2026-03-17 22:40:48 +01:00
parent 5390276ecd
commit f6fabc521e
3 changed files with 162 additions and 1 deletions
@@ -0,0 +1,70 @@
import { ApiProperty } from '@nestjs/swagger';
import { StatutUtilisateurType } from 'src/entities/users.entity';
import { StatutDossierType } from 'src/entities/dossiers.entity';
import { StatutEnfantType } from 'src/entities/children.entity';
/** Parent dans le dossier famille (infos utilisateur + parent) */
export class DossierFamilleParentDto {
@ApiProperty()
user_id: string;
@ApiProperty()
email: string;
@ApiProperty({ required: false })
prenom?: string;
@ApiProperty({ required: false })
nom?: string;
@ApiProperty({ required: false })
telephone?: string;
@ApiProperty({ enum: StatutUtilisateurType })
statut: StatutUtilisateurType;
@ApiProperty({ required: false, description: 'Id du co-parent si couple' })
co_parent_id?: string;
}
/** Enfant dans le dossier famille */
export class DossierFamilleEnfantDto {
@ApiProperty()
id: string;
@ApiProperty({ required: false })
first_name?: string;
@ApiProperty({ required: false })
last_name?: string;
@ApiProperty({ required: false })
birth_date?: Date;
@ApiProperty({ required: false })
due_date?: Date;
@ApiProperty({ enum: StatutEnfantType })
status: StatutEnfantType;
}
/** Dossier (parent+enfant) avec presentation */
export class DossierFamillePresentationDto {
@ApiProperty()
id: string;
@ApiProperty()
id_parent: string;
@ApiProperty()
id_enfant: string;
@ApiProperty({ required: false, description: 'Texte de présentation' })
presentation?: string;
@ApiProperty({ required: false })
type_contrat?: string;
@ApiProperty()
repas: boolean;
@ApiProperty({ required: false })
budget?: number;
@ApiProperty({ enum: StatutDossierType })
statut: StatutDossierType;
}
/** Réponse GET /parents/dossier-famille/:numeroDossier dossier famille complet. Ticket #119 */
export class DossierFamilleCompletDto {
@ApiProperty({ example: '2026-000001', description: 'Numéro de dossier famille' })
numero_dossier: string;
@ApiProperty({ type: [DossierFamilleParentDto] })
parents: DossierFamilleParentDto[];
@ApiProperty({ type: [DossierFamilleEnfantDto], description: 'Enfants de la famille' })
enfants: DossierFamilleEnfantDto[];
@ApiProperty({ type: [DossierFamillePresentationDto], description: 'Dossiers (présentation par parent/enfant)' })
presentation: DossierFamillePresentationDto[];
}