import { Body, Controller, Get, Param, Patch, Post, Query } from "@nestjs/common";
import { CurrentUser } from "../../common/decorators/current-user.decorator";
import { ServiceRequestsService } from "./service-requests.service";

@Controller("service-requests")
export class ServiceRequestsController {
  constructor(private readonly requests: ServiceRequestsService) {}

  @Post()
  create(@CurrentUser() user: { sub: string }, @Body() body: Record<string, unknown>) {
    return this.requests.create(user.sub, body);
  }

  @Get("mine")
  mine(@CurrentUser() user: { sub: string }) {
    return this.requests.mine(user.sub);
  }

  @Get("opportunities")
  opportunities(
    @CurrentUser() user: { sub: string },
    @Query("serviceId") serviceId?: string,
    @Query("location") location?: string,
  ) {
    return this.requests.opportunities(user.sub, { serviceId, location });
  }

  @Get(":id")
  detail(@CurrentUser() user: { sub: string }, @Param("id") id: string) {
    return this.requests.detail(id, user.sub);
  }

  @Patch(":id/cancel")
  cancel(@CurrentUser() user: { sub: string }, @Param("id") id: string) {
    return this.requests.cancel(id, user.sub);
  }
}
