import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common';
import { ColonnesService } from './colonnes.service';
import { CreateColonneDto } from './dto/create-colonne.dto';
import { UpdateColonneDto } from './dto/update-colonne.dto';
import { ResponseService } from 'src/services/response/response.service';
import { Public } from 'src/gestion-utilisateurs/authentication/decorators/public.decorator';

@Public()
@Controller('colonnes')
export class ColonnesController {
  constructor(private readonly colonnesService: ColonnesService, private responseService: ResponseService) {}

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

  @Get()
  async findAll() {
    const colonnes = await this.colonnesService.findAll();
     return this.responseService.success('Liste des colonnes', colonnes);
  }

  @Get(':id')
  async findOne(@Param('id') id: string) {
    const colonne = await this.colonnesService.findOne(+id);
    return this.responseService.success('Colonne trouvée', colonne);
  }

  @Patch(':id')
  async update(@Param('id') id: string, @Body() updateColonneDto: UpdateColonneDto) {
    const data = await this.colonnesService.update(+id, updateColonneDto);
    return this.responseService.success('Modification effectuée avec succès', data);
  }

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