import {
  Body,
  Controller,
  Delete,
  Get,
  Param,
  Post,
  Query,
  UseGuards,
} from "@nestjs/common";
import { ApiKeyGuard } from "../auth/api-key.guard";
import { InstancesService } from "./instances.service";

@UseGuards(ApiKeyGuard)
@Controller("instances")
export class InstancesController {
  constructor(private readonly instances: InstancesService) {}

  @Post()
  create(@Body() body: { usuarioId: string }) {
    return this.instances.createOrConnect(body.usuarioId);
  }

  @Get(":usuarioId")
  get(@Param("usuarioId") usuarioId: string) {
    return this.instances.findByUsuario(usuarioId);
  }

  @Get(":usuarioId/qr")
  qr(@Param("usuarioId") usuarioId: string) {
    return this.instances.getQr(usuarioId);
  }

  @Delete(":usuarioId")
  remove(
    @Param("usuarioId") usuarioId: string,
    @Query("hard") hard?: string,
  ) {
    return this.instances.disconnect(usuarioId, hard === "true");
  }
}
