import { Body, Controller, Post, Req, UseGuards } from "@nestjs/common";
import { LoginRateLimitGuard } from "../../common/guards/login-rate-limit.guard";
import { AuthService } from "./auth.service";
import { LoginDto } from "./dto/login.dto";

@Controller("auth")
export class AuthController {
  constructor(private readonly authService: AuthService) {}

  @UseGuards(LoginRateLimitGuard)
  @Post("login")
  login(
    @Body() dto: LoginDto,
    @Req() req: { ip: string; headers: Record<string, string> },
  ) {
    const clientIp =
      req.headers["x-forwarded-for"]?.split(",")[0]?.trim() || req.ip;
    return this.authService.login(dto, clientIp);
  }
}
