import { Controller, Get, Param, Query, UseGuards } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { ApiBearerAuth } from '@nestjs/swagger';
import { NumeracionesService } from './numeraciones.service';

// Lookup operativo de numeraciones — cualquier usuario autenticado puede leer
// numeraciones de una sucursal para emitir documentos (solicitud crédito, orden
// venta, pedido, factura, etc.). No requiere privilegio de administración.
@Controller({ version: '1', path: 'numeraciones/lookup' })
@UseGuards(AuthGuard('jwt'))
@ApiBearerAuth()
export class NumeracionesLookupController {
  constructor(private readonly numeracionesService: NumeracionesService) {}

  @Get('sucursal/:sucursal_id')
  findAllBySucursal(
    @Param('sucursal_id') sucursal_id: string,
    @Query('tipo_documento_id') tipo_documento_id?: string,
  ) {
    // soloActivos: este lookup alimenta la emisión de documentos (POS incluido),
    // donde ofrecer un punto de expedición o una numeración inactiva termina en
    // una factura emitida contra un punto dado de baja.
    return this.numeracionesService.findAllBySucursal(sucursal_id, tipo_documento_id, true);
  }
}
