import { Controller, Get, Query } from '@nestjs/common'; import { ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger'; import { Serealize } from '../interceptors/serialize.interceptor'; import { MultaService } from './multa.service'; import { IdEquipoPaginaDto } from '../dto/id-equipo-pagina.dto'; import { MultasDto } from './dto/input/multas.dto'; import { MultasUsuarioDto } from './dto/input/multas-usuario.dto'; import { MultasOutputDto } from './dto/output/multas.dto'; import { MultasEquipoOutputDto } from './dto/output/multas-equipo.dto'; import { MultasUsuarioOutputDto } from './dto/output/multas-usuario.dto'; @Controller('multa') @ApiTags('multa') export class MultaController { constructor(private multaService: MultaService) {} @Serealize(MultasOutputDto) @Get() @ApiOperation({ description: 'Endpoint que retorna 25 multas dependiendo de la página en la que este el usuario y sus filtros.', }) @ApiQuery({ description: 'Página en la que se encuentra el usuario.', name: 'pagina', type: 'string', }) @ApiQuery({ description: 'Id de la institución.', name: 'id_institucion', type: 'string', required: false, }) @ApiQuery({ description: 'Usuario que se quiere usar como filtro.', name: 'usuario', type: 'string', required: false, }) multas(@Query() query: MultasDto) { return this.multaService.findAll(query); } @Serealize(MultasEquipoOutputDto) @Get('multas-equipo') @ApiOperation({ description: 'Endpoint que retorna todas las multas de un equipo.', }) @ApiQuery({ description: 'Id del equipo.', name: 'id_equipo', type: 'string', }) @ApiQuery({ description: 'Página en la que se encuentra el usuario', name: 'pagina', type: 'string', }) multasEquipo(@Query() query: IdEquipoPaginaDto) { return this.multaService.findAllByIdEquipo( parseInt(query.id_equipo), parseInt(query.pagina), ); } @Serealize(MultasUsuarioOutputDto) @Get('multas-usuario') @ApiOperation({ description: 'Endpoint que retorna todas las multas de un usuario .', }) @ApiQuery({ description: 'Id del usuario.', name: 'id_usuario', type: 'string', }) @ApiQuery({ description: 'Página en la que se encuentra el usuario', name: 'pagina', type: 'string', }) multasUsuario(@Query() query: MultasUsuarioDto) { return this.multaService.findAllByIdUsuario( parseInt(query.id_usuario), parseInt(query.pagina), ); } // @Get('reporte') // reporte() {} }