import { Body, Controller, Delete, Get, Param, ParseIntPipe, Patch, Post } from '@nestjs/common'; import { AdministradorService } from './administrador.service'; import { Administrador } from './administrador.entity'; import { CreateAdministradorDto } from './dto/create-administrador.dto'; import { UpdateAdministradorDto } from './dto/update.administrador.dto'; import { ApiTags, ApiOperation, ApiResponse, ApiParam, ApiBody } from '@nestjs/swagger'; @ApiTags('Administradores') // Agrupa los endpoints en Swagger @Controller('administrador') export class AdministradorController { constructor(private administradorService: AdministradorService) {} @Get() @ApiOperation({ summary: 'Obtener todos los administradores' }) @ApiResponse({ status: 200, description: 'Lista de administradores obtenida correctamente.' }) getAdministradores(): Promise { return this.administradorService.getAdministradores(); } @Get(':id') @ApiOperation({ summary: 'Obtener un administrador por ID' }) @ApiParam({ name: 'id', description: 'ID del administrador', example: 1 }) @ApiResponse({ status: 200, description: 'Administrador obtenido correctamente.' }) @ApiResponse({ status: 404, description: 'Administrador no encontrado.' }) getAdministrador(@Param('id', ParseIntPipe) id: number) { return this.administradorService.getAdministrador(id) } @Post() @ApiOperation({ summary: 'Registrar un nuevo administrador' }) @ApiBody({ description: 'Datos del administrador a registrar', schema: { type: 'object', properties: { id_tipo_user: { type: 'integer', example: 1 } } } }) @ApiResponse({ status: 201, description: 'Administrador registrado exitosamente.' }) @ApiResponse({ status: 400, description: 'Datos inválidos.' }) createAdministrador(@Body() newAdministrador: CreateAdministradorDto) { return this.administradorService.createAdministrador(newAdministrador) } @Delete(':id') deleteAdministrador(@Param('id', ParseIntPipe) id: number) { return this.administradorService.deleteAdministrador(id) } @Patch(':id') updateAdministrador(@Param('id', ParseIntPipe) id: number, @Body() administrador: UpdateAdministradorDto) { return this.administradorService.updateAdministrador(id, administrador) } }