import { Controller, Get, Post, Body, Patch, Param, Delete, Req, HttpCode, HttpStatus } from '@nestjs/common';
import { LoginService } from './login.service';
import { ApiOperation, ApiQuery, ApiResponse } from '@nestjs/swagger';
import { CreateLoginDto, SwaggerLoginResponseDto } from './dto/create-login.dto';

@Controller('auth')
export class LoginController {
  constructor(private readonly loginService: LoginService) { }

  @Post('/login')
  @HttpCode(HttpStatus.OK) // Esto asegura que la respuesta tenga un código 200
  @ApiOperation({ summary: 'Inicio de sesión de un usuario' })
  @ApiResponse({
    status: 200,
    description: 'Devuelve el token del usuario logeado y los datos básicos',
    type: SwaggerLoginResponseDto,
  })
  @ApiResponse({
    status: 400,
    description: 'Error al iniciar sesión',
  })
  login(@Body() loginDto: CreateLoginDto, @Req() request: Request) {
    return this.loginService.login(loginDto);
  }
}
