import { Body, Controller, Post, Req, UseGuards } from "@nestjs/common";
import { AuthService } from "./auth.service";
import { RegisterDto } from "./dto/register.dto";
import { LoginDto } from "./dto/login.dto";
import { RefreshDto } from "./dto/refresh.dto";
import { JwtAuthGuard } from "../../common/guards/jwt-auth.guard";

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

  @Post("register")
  register(@Body() dto: RegisterDto) {
    return this.svc.register(dto);
  }

  @Post("login")
  login(@Body() dto: LoginDto) {
    return this.svc.login(dto);
  }

  @Post("refresh")
  refresh(@Body() dto: RefreshDto) {
    return this.svc.refresh(dto);
  }

  @UseGuards(JwtAuthGuard)
  @Post("logout")
  logout(@Req() req: any) {
    return this.svc.logout(req.user.userId);
  }
}
