import {
  Body,
  Controller,
  Delete,
  Get,
  Param,
  Patch,
  Post,
  UseGuards,
} from '@nestjs/common';
import { Roles } from '../../common/decorators/roles.decorator';
import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard';
import { RolesGuard } from '../../common/guards/roles.guard';
import { CreateTranslationDto } from './dto/create-translation.dto';
import { UpdateTranslationDto } from './dto/update-translation.dto';
import { LanguagesService } from './languages.service';

@Controller('languages')
export class LanguagesController {
  constructor(private readonly languagesService: LanguagesService) {}

  @UseGuards(JwtAuthGuard, RolesGuard)
  @Roles('super_admin')
  @Post('translations')
  create(@Body() data: CreateTranslationDto) {
    return this.languagesService.create(data);
  }

  @Get('translations')
  findAll() {
    return this.languagesService.findAll();
  }

  @Get(':language/translations')
  findByLanguage(@Param('language') language: string) {
    return this.languagesService.findByLanguage(language);
  }

  @UseGuards(JwtAuthGuard, RolesGuard)
  @Roles('super_admin')
  @Patch('translations/:id')
  update(@Param('id') id: string, @Body() data: UpdateTranslationDto) {
    return this.languagesService.update(Number(id), data);
  }

  @UseGuards(JwtAuthGuard, RolesGuard)
  @Roles('super_admin')
  @Delete('translations/:id')
  remove(@Param('id') id: string) {
    return this.languagesService.remove(Number(id));
  }
}