FlightMetaSearchAdminController

메타검색(네이버, 카카오 등) 서비스용 항공편 검색 API 컨트롤러. 동기식으로 검색 결과를 즉시 반환한다.

필수 헤더

  • X-Triple-Sales-Channel: 판매 채널
  • X-Triple-Sales-Funnel: 판매 퍼널 (메타검색 퍼널 결정에 사용)

의존성

서비스용도
StandardFlightSearchUseCase표준 검색
CombineFlightSearchUseCase조합 검색 (멀티티켓)
LocationService위치 정보 조회

메서드

searchOneWayTrip

fun searchOneWayTrip(
    originType: LocationType, origin: String,
    destinationType: LocationType, destination: String,
    outboundDate: LocalDate,
    cabins: Set<CabinType>,
    adult: Int, child: Int = 0, infant: Int = 0,
    freeBaggageOnly: Boolean = false,
    useCache: Boolean = false
): List<FlightItemAdminView>

메타검색용 편도 검색.

CallerCallee
HTTP GET /internals/admin/flights/meta/search/{...}/{outboundDate}FlightMetaSearchAdminController.searchFlights

searchRoundTrip

fun searchRoundTrip(
    ...,
    useMultiTicket: Boolean? = false
): List<FlightItemAdminView>

메타검색용 왕복 검색. useMultiTicket=true 시 조합 검색을 수행한다.

CallerCallee
HTTP GET /internals/admin/flights/meta/search/{...}/{outboundDate}/{inboundDate}useMultiTicket=true: FlightMetaSearchAdminController.searchRoundFlights
useMultiTicket=false: FlightMetaSearchAdminController.searchFlights

searchMultiCityTrip (2~4구간)

메타검색용 다구간 검색. 2~4구간까지 지원한다.


searchFlights (private)

private fun searchFlights(
    adult: Int, child: Int, infant: Int,
    freeBaggageOnly: Boolean,
    cabins: Set<CabinType>,
    useCache: Boolean,
    vararg originDestinationLocationInfo: OriginDestinationLocationInfo
): List<FlightItemAdminView>

표준 검색 로직. 퍼널에 따라 FareDecisionStrategy와 FlightGroupCriteria가 결정된다.


searchRoundFlights (private)

private fun searchRoundFlights(
    adult: Int, child: Int, infant: Int,
    freeBaggageOnly: Boolean,
    cabins: Set<CabinType>,
    useCache: Boolean,
    vararg originDestinationLocationInfo: OriginDestinationLocationInfo
): List<FlightItemAdminView>

멀티티켓(조합) 검색 로직.

특징

  • 동기식 응답: 폴링 없이 즉시 결과 반환
  • 퍼널 기반 전략: SalesFunnel에 따라 운임 결정 전략과 그룹핑 기준이 달라짐
  • 대표 카드 프로모션만: onlyRepresentativeCardPromotion = true
  • 추천 미사용: useRecommendation = false