FlightDetailService

항공편 상세 정보를 조회하는 서비스. 운임, 프로모션, TASF 등의 가격 정보를 포함한 상세 정보를 제공한다.

의존성

서비스용도
AdapterClient운임 상세 조회
AirlineService항공사 정보
AirportService공항 정보
BookableDateService예약 가능 날짜 검증
PricingClient운임/TASF/프로모션 조회
BillingService카드 혜택 조회
AirConsoleServiceSupplier 정보
NaverClient네이버 프로모션 검증
FlightSearchService캐시된 검색 결과 조회

메서드

getFlightDetail

fun getFlightDetail(
    detailKey: String,
    adult: Int,
    child: Int,
    infant: Int,
    promotionPrincipleId: Long? = null,
    naverPromotion: NaverPromotion? = null,
): FlightDetail

단일 항공편의 상세 정보를 조회한다. 가격 변동 검증을 수행한다.

가격 변동 검증: 캐싱된 검색 결과와 1000원 이상 차이나면 CHANGED_PRICE 예외 발생.


getFlightDetails

fun getFlightDetails(
    selectedFlights: List<SelectedFlight>,
    adult: Int,
    child: Int,
    infant: Int,
    naverPromotion: NaverPromotion?,
): List<FlightDetail>

멀티티켓용 복수 항공편 상세 조회. 병렬로 각 항공편을 조회한다.


getFlightDetailByPnr

fun getFlightDetailByPnr(
    detailKey: String,
    pnr: String,
    adult: Int,
    child: Int,
    infant: Int,
): FlightDetail

PNR로 항공편 상세를 조회한다. 재발행용.


findFreeInstallment

fun findFreeInstallment(detailKey: String): CardBenefit?

무이자 할부 카드 혜택을 조회한다.


getDetailKeys

fun getDetailKeys(metaId: String, listKey: UUID, fareStrategy: MetaFareStrategy): List<FlightDetailKey>

메타검색 ID로 detailKey 목록을 조회한다. 메타검색 랜딩용.

fareStrategy 옵션:

  • LOWEST_FARE: 최저가 운임
  • LOWEST_REPRESENTATIVE_PROMOTION_FARE: 대표 프로모션 최저가
  • LOWEST_FARE_WITH_CARD_PROMOTION: 카드 프로모션 포함 최저가
  • 그 외: promotionPrincipleId 매칭

findCardBenefit (private)

private fun findCardBenefit(supplierCode: String): CardBenefit?

Supplier의 prepayment 설정에 따라 카드 혜택을 조회한다.


getMatchedPromotionPrinciple (private)

private fun getMatchedPromotionPrinciple(
    fareItinerary: FareItineraryDetailResponse,
    promotionPrincipleId: Long?,
    airportMap: Map<String, Airport>,
    adult: Int,
    child: Int,
    infant: Int,
): Pair<DiscountPrinciple?, List<PromotionPrinciple>>

할인/프로모션 원칙을 매칭한다.


validateMultiTicketParameter (private)

private fun validateMultiTicketParameter(selectedFlights: List<SelectedFlight>)

멀티티켓 파라미터 검증. 2개 이상 선택 시 각각 MIX 항공편이어야 함.

특징

  • 가격 변동 검증: 검색 시점과 상세 조회 시점의 가격 차이를 1000원 기준으로 검증
  • 네이버 프로모션: 네이버 할인 정보 적용 및 검증 지원
  • 메타검색 랜딩: metaId로 트레이스 정보(가격, 프로모션ID, 항공사 등) 추적
  • 병렬 처리: 멀티티켓 조회 시 pmap으로 병렬 처리