ReissueFlightSearchUseCase

재발행 검색 유스케이스. PNR 기반으로 재발행 가능한 항공편을 검색한다.

의존성

서비스용도
AdapterClientPNR 기반 운임 조회
FlightSearchService폴링 결과 저장

메서드

searchFlights

fun searchFlights(
    supplier: String,
    pnr: String,
    supplierIdentificationKey: String?,
    searchInfo: SearchInfo,
    listKey: UUID,
    directOnly: Boolean,
): List<FlightItem>

PNR로 재발행 가능 항공편을 검색한다.

에러 처리:

  • ApiException: 메시지 키와 인자를 포함하여 에러 저장
  • 기타 예외: 일반 에러 메시지로 저장

init

fun init(
    searchInfo: SearchInfo,
    supplier: String,
    pnr: String,
    supplierIdentificationKey: String?,
    directOnly: Boolean,
): UUID

비동기 재발행 검색을 시작한다.

재발행 검색 파라미터

파라미터설명
supplierGDS/NDC 공급자 코드
pnr예약 번호
supplierIdentificationKey공급자 식별 키 (선택)
searchInfo승객 수, 캐빈 등 검색 조건
directOnly직항만 검색 여부

특징

  • PNR 기반: 기존 예약 PNR로 재발행 가능 운임 조회
  • 비동기 폴링: 긴 조회 시간을 위한 폴링 패턴
  • 에러 상세화: ApiException의 메시지 키와 인자 보존
  • 재발행 전용: FlightItem.ofReissue로 재발행용 아이템 생성