import { Body, Controller, Get, Param, Post, Req, UseGuards } from "@nestjs/common";
import { BookingRequestsService } from "./booking-requests.service";
import { CreateBookingRequestDto } from "./dto/create-booking-request.dto";
import { JwtAuthGuard } from "../../common/guards/jwt-auth.guard";

@Controller("booking-requests")
@UseGuards(JwtAuthGuard)
export class BookingRequestsController {
  constructor(private readonly svc: BookingRequestsService) {}

  @Post()
  create(@Req() req: any, @Body() dto: CreateBookingRequestDto) {
    return this.svc.createBookingRequest(req.user.userId, dto);
  }

  @Post("favourite/:providerId")
  createFavourite(@Req() req: any, @Param("providerId") providerId: string, @Body() dto: CreateBookingRequestDto) {
    return this.svc.createFavouriteDirectRequest(req.user.userId, providerId, dto);
  }

  @Get(":id")
  get(@Req() req: any, @Param("id") id: string) {
    return this.svc.getRequest(req.user.userId, id);
  }

  @Post(":id/cancel")
  cancel(@Req() req: any, @Param("id") id: string) {
    return this.svc.cancelRequest(req.user.userId, id);
  }
}
