import { Controller, Get } from '@nestjs/common'; import { ClsService } from 'nestjs-cls'; import type { PingResponse } from '@sar/api-interface'; import type { WorkspaceClsStore } from '../workspace/workspace.types'; import { Public } from '../auth/public.decorator'; // Endpoint de verificação de fundação: // - confirma que CLS está populando workspaceId + requestId; // - serve como alvo do healthcheck do docker compose / smoke test; // - usado pela Web (Frente B) para validar conectividade real. // Contrato: @sar/api-interface · PingResponseSchema (zod). @Public() @Controller({ path: 'ping' }) export class PingController { constructor(private readonly cls: ClsService) {} @Get() ping(): PingResponse { return { status: 'ok', service: 'sar-api', version: process.env['npm_package_version'] ?? '0.1.0', idEmpresa: this.cls.get('idEmpresa'), requestId: this.cls.get('requestId'), uptimeSeconds: Math.round(process.uptime()), now: new Date().toISOString(), }; } }