import { Controller, Get, Req, Res, Query } from '@nestjs/common';
import type { Request, Response } from 'express';
import { TranslationService } from '../common/services/translation.service';
import { ResponseHelper } from '../common/helpers/response.helper';

@Controller('i18n')
export class I18nController {
  constructor(
    private readonly translationService: TranslationService,
    private readonly responseHelper: ResponseHelper,
  ) {}

  @Get('translate')
  translateKey(@Req() req: Request, @Query('key') key: string) {
    const lang = req.lang || 'en';
    const translatedText = this.translationService.translate(key, lang);
    return this.responseHelper.success('TRANSLATION_FETCHED', lang, { key, translation: translatedText });
  }

  @Get('languages')
  getSupportedLanguages() {
    const languages = this.translationService.getSupportedLanguages();
    return {
      status: true,
      message: 'Supported languages fetched successfully',
      data: { languages },
    };
  }

  @Get('test-response')
  testResponse(@Req() req: Request) {
    const lang = req.lang || 'en';
    return this.responseHelper.success('USER_CREATED', lang, { 
      user: { id: 1, name: 'Test User' } 
    });
  }
}