import { Controller, Get, Query } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; import { Public } from 'src/core/guards'; import { PaginationResponse } from 'src/core/response/domain/ok-response.interface'; import { TABLE_NAME } from 'src/core/strings/constants/table.constants'; import { ItemReadService } from 'src/modules/item-related/item/data/services/item-read.service'; import { ItemEntity } from 'src/modules/item-related/item/domain/entities/item.entity'; import { FilterItemDto } from 'src/modules/item-related/item/infrastructure/dto/filter-item.dto'; import { BookingItemManager } from '../domain/usecases/managers/booking-item.manager'; @ApiTags('Booking Item') @Controller('v1/booking-item') @Public(true) export class ItemController { constructor( private indexManager: BookingItemManager, private serviceData: ItemReadService, ) {} @Get() async index( @Query() params: FilterItemDto, ): Promise> { params.limit = 1000; params.show_to_booking = true; this.indexManager.setFilterParam(params); this.indexManager.setService(this.serviceData, TABLE_NAME.ITEM); await this.indexManager.execute(); return this.indexManager.getResult(); } }