import { Controller, Get, Post, Body, Patch, Param, Delete, UseGuards, Put } from '@nestjs/common';
import { AgenceService } from './agence.service';
import { CreateAgenceDto } from './dto/create-agence.dto';
import { UpdateAgenceDto } from './dto/update-agence.dto';
import { DataRequest } from 'src/interface/DataRequest';
import { ResponseService } from 'src/services/response/response.service';
import { Public } from 'src/gestion-utilisateurs/authentication/decorators/public.decorator';

@Controller('agence')
export class AgenceController {
  constructor(private readonly agenceService: AgenceService, private responseService: ResponseService) { }
@Public()
  @Post()
  async create(@Body() createAgenceDto: CreateAgenceDto): Promise<DataRequest> {
    const saveAgence = await this.agenceService.create(createAgenceDto);
    return this.responseService.success('Enregistrement effectué avec succès', saveAgence);
  }

  @Public()
  @Get()
  async findAll(): Promise<DataRequest> {
    const agences = await this.agenceService.findAll();
    return this.responseService.success('Liste des agences', agences);
  }
 @Public()
  @Get(':id')
  async findOne(@Param('id') id: string): Promise<DataRequest> {
    const agence = await this.agenceService.findOne(+id);
    return this.responseService.success('Agence trouvée', agence);
  }
 @Public()
  @Patch(':id')
  async update(@Param('id') id: string, @Body() updateAgenceDto: UpdateAgenceDto): Promise<DataRequest> {
    const updAgence = await this.agenceService.update(+id, updateAgenceDto);
    return this.responseService.success('Modification effectuée avec succès', updAgence);
  }
 @Public()
  @Delete(':id')
  remove(@Param('id') id: string) {
    return this.agenceService.remove(+id);
  }
  
}
