FlightSearchInternalController

내부 서비스용 항공편 검색 API 컨트롤러. 예약/재발행 서비스에서 호출하며, 스케줄 기준 그룹핑과 추천 미사용이 특징이다.

의존성

서비스용도
FlightSearchService검색 결과 조회
StandardFlightSearchUseCase표준 검색 초기화
ReissueFlightSearchUseCase재발행 검색 초기화
AirlineService항공사 정보 조회
BookableDateService예약 가능 날짜 범위
LocationService위치 정보 조회
BillingService빌링 서비스

메서드

searchOneWayTripFlightsListKey

fun searchOneWayTripFlightsListKey(
    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 = true
): Map<String, UUID>

내부용 편도 항공편 검색 키를 생성한다.

CallerCallee
HTTP GET /internals/flights/search/{...}/{outboundDate}FlightSearchInternalController.searchFlightsListKey

searchRoundTripFlightsListKey

fun searchRoundTripFlightsListKey(...): Map<String, UUID>

내부용 왕복 항공편 검색 키를 생성한다.

CallerCallee
HTTP GET /internals/flights/search/{...}/{outboundDate}/{inboundDate}FlightSearchInternalController.searchFlightsListKey

getFlights

fun getFlights(listKey: UUID): ResponseEntity<List<InternalFlightItemView>>

검색 키로 항공편 목록을 조회한다. 외부 API와 달리 InternalFlightItemView를 반환한다.


getCacheKeyStatus

fun getCacheKeyStatus(listKey: UUID): Map<String, String>

캐시 키 유효성을 확인한다.

CallerCallee
HTTP GET /internals/flights/{listKey}/statusFlightSearchService.existFlightSearch

reissueSearch

fun reissueSearch(request: ReissueSearchRequest): Map<String, UUID>

재발행용 항공편 검색 키를 생성한다. 기존 PNR 기반으로 재검색한다.


searchFlightsListKey (private)

private fun searchFlightsListKey(
    adult: Int,
    child: Int,
    infant: Int,
    freeBaggageOnly: Boolean,
    cabins: Set<CabinType>,
    useCache: Boolean,
    vararg originDestinationLocationInfo: OriginDestinationLocationInfo
): Map<String, UUID>

내부용 검색 키 생성 로직. FlightGroupCriteria.SCHEDULE 사용, useRecommendation = false 설정.

외부 API와의 차이점

항목외부 API내부 API
FlightGroupCriteriaNONESCHEDULE
useRecommendationtruefalse
ResponseFlightSearchPageViewInternalFlightItemView