import { Controller, Get, Param, ParseIntPipe, Query } from '@nestjs/common'; import { createZodDto } from 'nestjs-zod'; import { ClientListQuerySchema, type ClientDetail, type ClientListQuery, type ClientListResponse, } from '@sar/api-interface'; import { ClientsService } from './clients.service'; class ClientListQueryDto extends createZodDto(ClientListQuerySchema) {} @Controller({ path: 'clients' }) export class ClientsController { constructor(private readonly clients: ClientsService) {} @Get() list(@Query() query: ClientListQueryDto): Promise { const parsed = ClientListQuerySchema.parse(query) as ClientListQuery; return this.clients.list(parsed); } @Get(':id') findOne(@Param('id', ParseIntPipe) id: number): Promise { return this.clients.findOne(id); } }