import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common';
import { TypedocumentService } from './typedocument.service';
import { CreateTypedocumentDto } from './dto/create-typedocument.dto';
import { UpdateTypedocumentDto } from './dto/update-typedocument.dto';
import { ResponseService } from 'src/services/response/response.service';
import { Public } from 'src/gestion-utilisateurs/authentication/decorators/public.decorator';
@Public()
@Controller('typedocument')
export class TypedocumentController {
  constructor(private readonly typedocumentService: TypedocumentService, private responseService: ResponseService) {}

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

  @Get()
  async findAll() {
    const typeDocs = await this.typedocumentService.findAll();
    return this.responseService.success('Liste des type de documents', typeDocs);
  }

  @Get(':id')
  async findOne(@Param('id') id: string) {
    const typeDoc = await this.typedocumentService.findOne(+id);
    return this.responseService.success('type de document trouvée', typeDoc);
  }

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

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