FlightSearchAdminController

관리자용 항공편 검색 API 컨트롤러. 동기식으로 검색 결과를 즉시 반환하며, Split/Combined 검색을 지원한다.

필수 헤더

  • X-Triple-Sales-Channel: 판매 채널
  • X-Triple-Sales-Funnel: 판매 퍼널

의존성

서비스용도
StandardFlightSearchUseCase표준 검색
SplitFlightSearchUseCase분리 검색 (왕복을 편도+편도로)
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,
    useRecommendation: Boolean = true,
    useCache: Boolean = false,
    flightGroupCriteria: FlightGroupCriteria = SCHEDULE
): ResponseEntity<List<FlightItemAdminView>>

관리자용 편도 검색. 동기식으로 결과를 즉시 반환한다.

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

searchRoundTrip

fun searchRoundTrip(
    ...,
    mixResponseType: MixFlightResponseType?,
    searchTripDirectionType: SearchTripDirectionType?,
    detailKey: String?,
    promotionPrincipleId: Long?,
    cachedListKey: String?,
    debug: Boolean = false
): ResponseEntity<List<FlightItemAdminView>>

관리자용 왕복 검색. mixResponseType에 따라 SPLIT/COMBINED/표준 검색을 수행한다.

CallerCallee
HTTP GET /internals/admin/flights/search/{...}/{outboundDate}/{inboundDate}FlightSearchAdminController.searchFlights

searchMultiCityTrip (2~4구간)

관리자용 다구간 검색. 2~4구간까지 지원한다.


searchFlights (private)

private fun searchFlights(
    adult: Int, child: Int, infant: Int,
    freeBaggageOnly: Boolean,
    cabins: Set<CabinType>,
    useRecommendation: Boolean,
    useCache: Boolean,
    originDestinations: List<OriginDestinationLocationInfo>,
    mixResponseType: MixFlightResponseType? = null,
    searchTripDirectionType: SearchTripDirectionType? = null,
    detailKey: String? = null,
    promotionPrincipleId: Long? = null,
    cachedListKey: UUID? = null,
    flightGroupCriteria: FlightGroupCriteria,
    debug: Boolean = false
): ResponseEntity<List<FlightItemAdminView>>

실제 검색 로직. mixResponseType에 따라 다른 UseCase를 호출한다.

CallerCallee
모든 검색 메서드SearchInfo 생성
CacheKeyGenerator.getFlightSearchCacheKey
MDCHolder.SalesFunnel.get
UseCase 호출 (위 표 참조)
FlightItemAdminView.of

특징

  • 동기식 응답: 폴링 없이 즉시 결과 반환
  • 캐시 키 헤더: 응답에 X-Cached-Search-Key 헤더 포함
  • 디버그 모드: debug=true 시 추가 정보 제공