FlightMetaSearchProxyController
메타검색 프록시용 항공편 검색 API 컨트롤러. 동기식으로 검색 결과를 즉시 반환하며, 공항/항공사 정보를 함께 제공한다.
필수 헤더
X-Triple-Sales-Channel: 판매 채널X-Triple-Sales-Funnel: 판매 퍼널
의존성
| 서비스 | 용도 |
|---|---|
| StandardFlightSearchUseCase | 표준 검색 |
| CombineFlightSearchUseCase | 조합 검색 (멀티티켓) |
| LocationService | 위치 정보 조회 |
| AirportService | 공항 정보 조회 |
| AirlineService | 항공사 정보 조회 |
메서드
searchOneWayTrip
fun searchOneWayTrip(
...,
onlyDirect: Boolean = false
): List<ProxyFlightMetaSearchView>메타검색용 편도 검색. 직항 필터 옵션 제공.
| Caller | Callee |
|---|---|
HTTP GET /internals/proxy/flights/meta/search/{...}/{outboundDate} | FlightMetaSearchProxyController.searchFlights |
searchRoundTrip
fun searchRoundTrip(
...,
onlyDirect: Boolean = false,
useMultiTicket: Boolean? = false
): List<ProxyFlightMetaSearchView>메타검색용 왕복 검색. useMultiTicket=true 시 조합 검색을 수행한다.
| Caller | Callee |
|---|---|
HTTP GET /internals/proxy/flights/meta/search/{...}/{outboundDate}/{inboundDate} | useMultiTicket=true: FlightMetaSearchProxyController.searchRoundFlights |
| useMultiTicket=false: FlightMetaSearchProxyController.searchFlights |
searchMultiCityTrip (2~4구간)
메타검색용 다구간 검색. 2~4구간까지 지원한다.
searchFlights (private)
private fun searchFlights(
adult: Int, child: Int, infant: Int,
freeBaggageOnly: Boolean,
cabins: Set<CabinType>,
onlyDirect: Boolean,
useCache: Boolean,
vararg originDestinationLocationInfo: OriginDestinationLocationInfo
): List<ProxyFlightMetaSearchView>표준 검색 로직. 퍼널에 따라 전략이 결정된다.
searchRoundFlights (private)
private fun searchRoundFlights(...): List<ProxyFlightMetaSearchView>멀티티켓(조합) 검색 로직.
| Caller | Callee |
|---|---|
| FlightMetaSearchProxyController.searchRoundTrip | CombineFlightSearchUseCase.searchFlights |
| ProxyFlightMetaSearchView.of |
extractCodesFromSchedules (private)
private fun extractCodesFromSchedules(
flightItems: List<CommonFlightItem>
): Pair<Set<String>, Set<String>>검색 결과에서 공항/항공사 코드를 추출한다.
특징
- 동기식 응답: 폴링 없이 즉시 결과 반환
- 퍼널 기반 전략: SalesFunnel에 따라 운임 결정 전략과 그룹핑 기준이 달라짐
- 공항/항공사 정보 포함: 응답에 공항명, 항공사명 등 부가 정보 포함
- 직항 필터: onlyDirect=true 시 직항편만 반환
- 추천 미사용: useRecommendation = false
- 대표 카드 프로모션만: onlyRepresentativeCardPromotion = true