import { ClientProxy } from '@nestjs/microservices'; import { AbstractParam } from '@yolo-croket-dev/core'; import { ConvertToReservationItemPayload, ConvertToNormalItemPayload, GetReservationItemsForAdminPayload, GetReservationItemsForAdminResult, GetReservationItemDetailForAdminPayload, GetReservationItemDetailForAdminResult, UpdateReservationPeriodPayload, UpdateStockSecuringPeriodPayload, UpdateShippingPeriodPayload, UpdateStockModePayload, UpdateReservationItemSellingPayload } from '../dto/reservation-store-item'; /** * @author jun * @description 예약 상품 관련 AMQP 서비스 * @process store-item-server의 reservation-store-item 컨트롤러와 RabbitMQ를 통해 통신 */ export declare class AmqpReservationStoreItemService { private readonly client; private readonly amqpManager; constructor(client: ClientProxy); /** 일반 상품 → 예약 상품 전환 */ convertToReservationItem(payload: ConvertToReservationItemPayload, param: AbstractParam): Promise; /** 예약 상품 → 일반 상품 전환 */ convertToNormalItem(payload: ConvertToNormalItemPayload, param: AbstractParam): Promise; /** 관리자용 예약 상품 목록 조회 */ getReservationItemsForAdmin(payload: GetReservationItemsForAdminPayload, param: AbstractParam): Promise; /** 관리자용 예약 상품 상세 조회 (예약 현황) */ getReservationItemDetailForAdmin(payload: GetReservationItemDetailForAdminPayload, param: AbstractParam): Promise; /** 예약 상품의 예약 가능 기간 변경 */ updateReservationPeriod(payload: UpdateReservationPeriodPayload, param: AbstractParam): Promise; /** 예약 상품의 재고확보 및 결제 기간 변경 */ updateStockSecuringPeriod(payload: UpdateStockSecuringPeriodPayload, param: AbstractParam): Promise; /** 예약 상품의 발송 예정 기간 변경 */ updateShippingPeriod(payload: UpdateShippingPeriodPayload, param: AbstractParam): Promise; /** 예약 상품의 재고 모드 변경 */ updateStockMode(payload: UpdateStockModePayload, param: AbstractParam): Promise; /** 예약 상품의 판매 상태(개시/중지) 변경 */ updateReservationItemSelling(payload: UpdateReservationItemSellingPayload, param: AbstractParam): Promise; }