This commit is contained in:
marshal
2026-06-01 15:14:03 +03:00
parent 6b6a1d56d6
commit 4285e704bd
5 changed files with 325 additions and 2 deletions

View File

@@ -18,11 +18,14 @@ import {
ApiBearerAuth,
ApiBody,
ApiConsumes,
ApiOkResponse,
ApiOperation,
ApiTags,
} from "@nestjs/swagger";
import { BookingReferenceDataService } from "./booking-reference-data.service";
import { BookingsService } from "./bookings.service";
import { BookingReferenceDataDto } from "./dto/booking-reference-data.dto";
import { CreateBookingDto } from "./dto/create-booking.dto";
import { FilterBookingDto } from "./dto/filter-booking.dto";
import { UpdateBookingDto } from "./dto/update-booking.dto";
@@ -32,7 +35,10 @@ import { UpdateStatusDto } from "./dto/update-status.dto";
@Controller("bookings")
@ApiBearerAuth()
export class BookingsController {
constructor(private readonly bookingsService: BookingsService) { }
constructor(
private readonly bookingsService: BookingsService,
private readonly bookingReferenceDataService: BookingReferenceDataService,
) {}
// ── 1. Create booking (multipart/form-data) ──────────────────────────
@Post()
@@ -100,6 +106,19 @@ export class BookingsController {
return this.bookingsService.findAll(filter);
}
// ── Booking form catalog (must be before :id) ─────────────────────────
@Get("reference-data")
@ApiOperation({
summary: "Booking form catalog",
description:
"Returns yards, container types (grouped by size), service types, shipping lines, " +
"and hierarchical cargo types for the booking UI in a single payload.",
})
@ApiOkResponse({ type: BookingReferenceDataDto })
getReferenceData(): Promise<BookingReferenceDataDto> {
return this.bookingReferenceDataService.getReferenceData();
}
// ── 5. Lookup by reference (must be before :id to avoid conflict) ─────
@Get("by-reference/:reference")
@ApiOperation({