PricingRequest

가격 정책 API 요청 DTO 모음. Pricing API로 전송하는 다양한 요청.

클래스 구조

PricingPrincipleActiveRequest

활성 정책 조회 요청.

필드타입설명
channelChannel채널
funnelsList<Funnel>퍼널 목록
tripTypeTripType여정 타입
departureAirportsSet<String>출발 공항 목록
departureNationString출발 국가
arrivalAirportsSet<String>도착 공항 목록
arrivalNationString도착 국가
departureDateLocalDate출발일
adultInt성인 수
childInt아동 수
infantInt유아 수
tasfPrincipleTypeTasfPrincipleTypeTASF 정책 타입
useMultiTicketBoolean멀티티켓 사용
onlyRepresentativeCardPromotionBoolean대표 카드 프로모션만

메서드:

fun toParameters(): List<Pair<String, Any?>>

PricingPrincipleDiscountsMatchedRequest

할인 정책 매칭 요청.

필드타입설명
channelChannel채널
funnelFunnel퍼널
supplierString공급자
tripTypeString여정 타입
airlineString항공사
operatingCarriersSet<String>운항 항공사 목록
departureAirportsSet<String>출발 공항 목록
departureNationString출발 국가
departureDateLocalDate출발일
departureTimeInt출발 시간
arrivalAirportsSet<String>도착 공항 목록
arrivalNationString도착 국가
arrivalDateLocalDate도착일
cabinsSet<String>좌석 등급
classesSet<String>부킹 클래스
adultAirPriceLong성인 항공료
adultTaxPriceLong성인 세금
adultIdentityTypeIdentityType?성인 신분 타입
adultFareBasisCodesSet<String>운임 기준 코드
stopPointsSet<String>경유지 목록
stopPointNationsSet<String>경유지 국가 목록
flightNumbersSet<String>편명 목록
appliedDayDayOfWeek적용 요일
appliedTimeInt적용 시간
adultInt성인 수
childInt아동 수
infantInt유아 수

팩토리 메서드:

fun of(
    channel: Channel,
    funnel: Funnel,
    fareItinerary: FareItineraryDetailResponse,
    airportMap: Map<String, Airport>,
    adult: Int, child: Int, infant: Int,
): PricingPrincipleDiscountsMatchedRequest

PricingPrincipleTasfsMatchedRequest

TASF 정책 매칭 요청.

필드타입설명
routeTypeRouteType노선 타입 (기본: INTERNATIONAL)
(위 요청과 유사한 필드들)
adultPriceLong성인 총 가격

PricingPrincipleFaresMatchedRequest

운임 정책 매칭 요청.

필드타입설명
channelChannel채널
funnelFunnel퍼널
(위 요청들과 유사한 필드들)

헬퍼 함수

toStopPoints()

private fun List<ScheduleResponse>.toStopPoints(): Set<String>

스케줄 목록에서 경유지 추출. 직항이면 “DIRECT” 반환.

사용처

사용 위치용도
PricingClient가격 정책 API 호출
FlightSearchService검색 시 정책 조회
FlightDetailService상세 조회 시 정책 매칭

특징

  • 세부 조건 매칭: 다양한 조건으로 정책 매칭
  • 현재 시간 기반: appliedDay/appliedTime으로 시간대별 정책
  • 경유지 처리: 경유지 공항과 국가 모두 추출
  • 파라미터 변환: toParameters()로 쿼리 파라미터 변환