import { Controller, Get, Param, UseGuards } from '@nestjs/common'; import { ApiOperation, ApiParam, ApiResponse, ApiTags } from '@nestjs/swagger'; import { Roles } from 'src/common/decorators/roles.decorator'; import { RoleType } from 'src/entities/users.entity'; import { AuthGuard } from 'src/common/guards/auth.guard'; import { RolesGuard } from 'src/common/guards/roles.guard'; import { DossiersService } from './dossiers.service'; import { DossierUnifieDto } from './dto/dossier-unifie.dto'; @ApiTags('Dossiers') @Controller('dossiers') @UseGuards(AuthGuard, RolesGuard) export class DossiersController { constructor(private readonly dossiersService: DossiersService) {} @Get(':numeroDossier') @Roles(RoleType.SUPER_ADMIN, RoleType.ADMINISTRATEUR, RoleType.GESTIONNAIRE) @ApiOperation({ summary: 'Dossier complet par numéro (AM ou famille) – Ticket #119' }) @ApiParam({ name: 'numeroDossier', description: 'Numéro de dossier (ex: 2026-000001)' }) @ApiResponse({ status: 200, description: 'Dossier famille ou AM', type: DossierUnifieDto }) @ApiResponse({ status: 404, description: 'Aucun dossier pour ce numéro' }) @ApiResponse({ status: 403, description: 'Accès refusé' }) getDossier(@Param('numeroDossier') numeroDossier: string): Promise { return this.dossiersService.getDossierByNumero(numeroDossier); } }