import { Body, Controller, Delete, Get, HttpCode, Param, ParseIntPipe, Patch, Post, } from '@nestjs/common'; import { createZodDto } from 'nestjs-zod'; import { CreateOportunidadeSchema, UpdateOportunidadeSchema, type FunilResponse, type Oportunidade, } from '@sar/api-interface'; import { FunilService } from './funil.service'; class CreateDto extends createZodDto(CreateOportunidadeSchema) {} class UpdateDto extends createZodDto(UpdateOportunidadeSchema) {} @Controller('funil') export class FunilController { constructor(private readonly funil: FunilService) {} @Get() listar(): Promise { return this.funil.listar(); } @Post() criar(@Body() dto: CreateDto): Promise { return this.funil.criar(CreateOportunidadeSchema.parse(dto)); } @Patch(':id') atualizar(@Param('id', ParseIntPipe) id: number, @Body() dto: UpdateDto): Promise { return this.funil.atualizar(id, UpdateOportunidadeSchema.parse(dto)); } @Delete(':id') @HttpCode(204) deletar(@Param('id', ParseIntPipe) id: number): Promise { return this.funil.deletar(id); } }