import { ApiProperty } from '@nestjs/swagger';
import { RoleType } from 'src/entities/users.entity';
import {
  DossierFamilleEnfantDto,
  DossierFamilleParentDto,
} from '../../parents/dto/dossier-famille-complet.dto';

/** Réponse GET /auth/reprise-dossier – dossier complet pour préremplir le wizard reprise. #111 + #112 */
export class RepriseDossierDto {
  @ApiProperty()
  id: string;

  @ApiProperty()
  email: string;

  @ApiProperty({ required: false })
  prenom?: string;

  @ApiProperty({ required: false })
  nom?: string;

  @ApiProperty({ required: false })
  telephone?: string;

  @ApiProperty({ required: false })
  adresse?: string;

  @ApiProperty({ required: false })
  ville?: string;

  @ApiProperty({ required: false })
  code_postal?: string;

  @ApiProperty({ required: false })
  numero_dossier?: string;

  @ApiProperty({ enum: RoleType })
  role: RoleType;

  @ApiProperty({ required: false, description: 'Pour AM' })
  photo_url?: string;

  @ApiProperty({ required: false })
  genre?: string;

  @ApiProperty({ required: false })
  situation_familiale?: string;

  // --- Parent (dossier famille, aligné #119) ---

  @ApiProperty({ type: [DossierFamilleParentDto], required: false })
  parents?: DossierFamilleParentDto[];

  @ApiProperty({ type: [DossierFamilleEnfantDto], required: false })
  enfants?: DossierFamilleEnfantDto[];

  @ApiProperty({ required: false, description: 'Motivation / présentation dossier famille' })
  texte_motivation?: string;

  // --- AM (aligné DossierAmCompletDto) ---

  @ApiProperty({ required: false })
  consentement_photo?: boolean;

  @ApiProperty({ required: false })
  date_naissance?: Date;

  @ApiProperty({ required: false })
  lieu_naissance_ville?: string;

  @ApiProperty({ required: false })
  lieu_naissance_pays?: string;

  @ApiProperty({ required: false })
  numero_agrement?: string;

  @ApiProperty({ required: false })
  nir?: string;

  @ApiProperty({ required: false })
  date_agrement?: Date;

  @ApiProperty({ required: false })
  nb_max_enfants?: number;

  @ApiProperty({ required: false })
  place_disponible?: number;

  @ApiProperty({ required: false })
  biographie?: string;
}
