import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common';
import { BanqueService } from './banque.service';
import { CreateBanqueDto } from './dto/create-banque.dto';
import { UpdateBanqueDto } from './dto/update-banque.dto';
import { ResponseService } from 'src/services/response/response.service';
import { Public } from 'src/gestion-utilisateurs/authentication/decorators/public.decorator';

@Controller('banque')
export class BanqueController {
  constructor(private readonly banqueService: BanqueService, private responseService: ResponseService) {}

  @Post()
  async create(@Body() createBanqueDto: CreateBanqueDto) {
    const data = await this.banqueService.create(createBanqueDto);
    return this.responseService.success('Enregistrement effectué avec succès', data);
  }

  @Public()
  @Get()
  async findAll() {
    const data = await this.banqueService.findAll();
    return this.responseService.success('Liste des banques', data);
  }
  @Public()
  @Get(':id')
  async findOne(@Param('id') id: string) {
    const data = await this.banqueService.findOne(+id);
    return this.responseService.success('Infos banque', data);
  }
@Public()
  @Patch(':id')
  async update(@Param('id') id: string, @Body() updateBanqueDto: UpdateBanqueDto) {
    const banque = await this.banqueService.update(+id, updateBanqueDto);
    return this.responseService.success('Modification effectué avec succès', banque);
  }

  @Delete(':id')
  remove(@Param('id') id: string) {
    return this.banqueService.remove(+id);
  }
}
