import { Body, Controller, Delete, Get, Param, Post, Put, UseGuards } from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
import { GetUser } from 'src/auth/get-user.decorator';
import { CondicionesPagoService } from './condiciones-pago.service';
import { CreateCondicionPagoDto } from './dto/create-condicion-pago.dto';
import { UpdateCondicionPagoDto } from './dto/update-condicion-pago.dto';

@ApiTags('Condiciones de Pago')
@ApiBearerAuth()
@UseGuards(AuthGuard('jwt'))
@Controller({ path: 'condiciones-pago', version: '1' })
export class CondicionesPagoController {
  constructor(private readonly service: CondicionesPagoService) {}

  @Post()
  create(@Body() dto: CreateCondicionPagoDto, @GetUser() user: any) {
    return this.service.create(dto, user.empresa_id);
  }

  @Get()
  findAll(@GetUser() user: any) {
    return this.service.findAll(user.empresa_id);
  }

  @Get(':id')
  findOne(@Param('id') id: string) {
    return this.service.findOne(id);
  }

  @Put(':id')
  update(@Param('id') id: string, @Body() dto: UpdateCondicionPagoDto, @GetUser() user: any) {
    return this.service.update(id, dto, user.empresa_id);
  }

  @Delete(':id')
  remove(@Param('id') id: string, @GetUser() user: any) {
    return this.service.remove(id, user.empresa_id);
  }
}
