import { Controller, Get, Query, UseGuards } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { ApiBearerAuth, ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger';
import type { LoginUserInfo } from 'src/auth/dto/login.dto';
import { GetUser } from 'src/auth/get-user.decorator';
import { PersonasService } from './personas.service';

@ApiTags('Personas')
@Controller({ path: 'personas', version: '1' })
export class PersonasController {
  constructor(private readonly personasService: PersonasService) {}

  @Get('buscar-por-ruc')
  @UseGuards(AuthGuard('jwt'))
  @ApiBearerAuth()
  @ApiOperation({
    summary: 'Buscar persona existente por RUC (para autocompletar alta de Cliente/Proveedor)',
  })
  @ApiQuery({ name: 'ruc', required: true })
  buscarPorRuc(@Query('ruc') ruc: string, @GetUser() user: LoginUserInfo) {
    return this.personasService.buscarPorRuc(ruc, user.empresa_id);
  }
}
