PricingRequest
가격 정책 API 요청 DTO 모음. Pricing API로 전송하는 다양한 요청.
클래스 구조
PricingPrincipleActiveRequest
활성 정책 조회 요청.
| 필드 | 타입 | 설명 |
|---|---|---|
channel | Channel | 채널 |
funnels | List<Funnel> | 퍼널 목록 |
tripType | TripType | 여정 타입 |
departureAirports | Set<String> | 출발 공항 목록 |
departureNation | String | 출발 국가 |
arrivalAirports | Set<String> | 도착 공항 목록 |
arrivalNation | String | 도착 국가 |
departureDate | LocalDate | 출발일 |
adult | Int | 성인 수 |
child | Int | 아동 수 |
infant | Int | 유아 수 |
tasfPrincipleType | TasfPrincipleType | TASF 정책 타입 |
useMultiTicket | Boolean | 멀티티켓 사용 |
onlyRepresentativeCardPromotion | Boolean | 대표 카드 프로모션만 |
메서드:
fun toParameters(): List<Pair<String, Any?>>PricingPrincipleDiscountsMatchedRequest
할인 정책 매칭 요청.
| 필드 | 타입 | 설명 |
|---|---|---|
channel | Channel | 채널 |
funnel | Funnel | 퍼널 |
supplier | String | 공급자 |
tripType | String | 여정 타입 |
airline | String | 항공사 |
operatingCarriers | Set<String> | 운항 항공사 목록 |
departureAirports | Set<String> | 출발 공항 목록 |
departureNation | String | 출발 국가 |
departureDate | LocalDate | 출발일 |
departureTime | Int | 출발 시간 |
arrivalAirports | Set<String> | 도착 공항 목록 |
arrivalNation | String | 도착 국가 |
arrivalDate | LocalDate | 도착일 |
cabins | Set<String> | 좌석 등급 |
classes | Set<String> | 부킹 클래스 |
adultAirPrice | Long | 성인 항공료 |
adultTaxPrice | Long | 성인 세금 |
adultIdentityType | IdentityType? | 성인 신분 타입 |
adultFareBasisCodes | Set<String> | 운임 기준 코드 |
stopPoints | Set<String> | 경유지 목록 |
stopPointNations | Set<String> | 경유지 국가 목록 |
flightNumbers | Set<String> | 편명 목록 |
appliedDay | DayOfWeek | 적용 요일 |
appliedTime | Int | 적용 시간 |
adult | Int | 성인 수 |
child | Int | 아동 수 |
infant | Int | 유아 수 |
팩토리 메서드:
fun of(
channel: Channel,
funnel: Funnel,
fareItinerary: FareItineraryDetailResponse,
airportMap: Map<String, Airport>,
adult: Int, child: Int, infant: Int,
): PricingPrincipleDiscountsMatchedRequestPricingPrincipleTasfsMatchedRequest
TASF 정책 매칭 요청.
| 필드 | 타입 | 설명 |
|---|---|---|
routeType | RouteType | 노선 타입 (기본: INTERNATIONAL) |
| (위 요청과 유사한 필드들) | ||
adultPrice | Long | 성인 총 가격 |
PricingPrincipleFaresMatchedRequest
운임 정책 매칭 요청.
| 필드 | 타입 | 설명 |
|---|---|---|
channel | Channel | 채널 |
funnel | Funnel | 퍼널 |
| (위 요청들과 유사한 필드들) |
헬퍼 함수
toStopPoints()
private fun List<ScheduleResponse>.toStopPoints(): Set<String>스케줄 목록에서 경유지 추출. 직항이면 “DIRECT” 반환.
사용처
| 사용 위치 | 용도 |
|---|---|
| PricingClient | 가격 정책 API 호출 |
| FlightSearchService | 검색 시 정책 조회 |
| FlightDetailService | 상세 조회 시 정책 매칭 |
특징
- 세부 조건 매칭: 다양한 조건으로 정책 매칭
- 현재 시간 기반: appliedDay/appliedTime으로 시간대별 정책
- 경유지 처리: 경유지 공항과 국가 모두 추출
- 파라미터 변환: toParameters()로 쿼리 파라미터 변환