FlightSearchResponse
항공편 검색 응답 DTO 모음. Adapter API에서 반환하는 검색 결과.
클래스 구조
FareItineraryResponse (검색 결과)
간단한 검색 결과 DTO.
| 필드 | 타입 | 설명 |
|---|---|---|
key | String | 운임 키 |
id | String | 운임 ID |
supplier | String | 공급자 코드 |
itemKey | String | 아이템 키 |
scheduleKey | String | 스케줄 키 |
schedules | List<SimpleScheduleResponse> | 스케줄 목록 |
passengerFares | List<PassengerFareResponse> | 승객별 운임 |
validatingCarrier | String | 발권 항공사 |
maxStop | Int | 최대 경유 수 |
avail | Int | 잔여 좌석 |
tripDirectionType | TripDirectionType? | 여정 방향 (MIX용) |
계산 프로퍼티:
departure: 첫 출발 공항arrival: 첫 도착 공항departureAt: 출발 시각cabinSet: 좌석 등급 세트airportSet: 경유 공항 세트stopPoints: 경유지 세트adultFare: 성인 운임isMix: MIX 여부 (tripDirectionType != null)
FareItineraryDetailResponse (상세 결과)
상세 검색 결과 DTO.
| 필드 | 타입 | 설명 |
|---|---|---|
itemKey | String | 아이템 키 |
key | String | 운임 키 |
id | String | 운임 ID |
supplier | String | 공급자 코드 |
scheduleKey | String | 스케줄 키 |
passengerFares | List<PassengerFareResponse> | 승객별 운임 |
validatingCarrier | String | 발권 항공사 |
schedules | List<ScheduleResponse> | 상세 스케줄 |
avail | Int | 잔여 좌석 |
tripDirectionType | TripDirectionType? | 여정 방향 |
메서드:
getTripType(airportMap): 여정 타입 계산
SimpleScheduleResponse
간단한 스케줄 정보.
| 필드 | 타입 | 설명 |
|---|---|---|
key | String | 스케줄 키 |
segments | List<SimpleSegmentResponse> | 세그먼트 목록 |
stop | Int | 경유 수 |
totalFlightTime | String | 총 비행 시간 |
addDay | Int | 추가 일수 |
avail | Int | 잔여 좌석 |
freeBaggage | FreeBaggageResponse? | 무료 수하물 |
departure | String | 출발 공항 |
departureAt | LocalDateTime | 출발 시각 |
arrival | String | 도착 공항 |
arrivalAt | LocalDateTime | 도착 시각 |
ScheduleResponse (상세)
상세 스케줄 정보.
| 필드 | 타입 | 설명 |
|---|---|---|
segments | List<SegmentResponse> | 상세 세그먼트 |
flightTime | String | 비행 시간 |
stop | Int | 경유 수 |
addDay | Int | 추가 일수 |
avail | Int | 잔여 좌석 |
SegmentResponse
세그먼트 상세 정보.
| 필드 | 타입 | 설명 |
|---|---|---|
departure | String | 출발 공항 |
departureAt | LocalDateTime | 출발 시각 |
departureTerminal | String? | 출발 터미널 |
arrival | String | 도착 공항 |
arrivalAt | LocalDateTime | 도착 시각 |
arrivalTerminal | String? | 도착 터미널 |
marketingCarrier | String | 마케팅 항공사 |
operatingCarrier | String? | 운항 항공사 |
flightNumber | String | 편명 |
equipmentType | String? | 기종 |
cabin | CabinType | 좌석 등급 |
bookingClass | String | 부킹 클래스 |
avail | Int | 잔여 좌석 |
freeBaggage | FreeBaggageResponse? | 무료 수하물 |
flightTime | String | 비행 시간 |
connectingTime | String? | 환승 시간 |
overNightStay | Long | 야간 체류 시간 |
addDay | Int | 추가 일수 |
legs | List<LegResponse> | 레그 목록 |
amenity | AmenityResponse? | 기내 서비스 |
PassengerFareResponse
승객별 운임 정보.
| 필드 | 타입 | 설명 |
|---|---|---|
type | PassengerType | 승객 타입 |
total | Long | 총 금액 |
tax | Long | 세금 |
fuelCharge | Long | 유류할증료 |
qCharge | Long | Q 차지 |
carrierFee | Long | 항공사 수수료 |
fareBasisCodes | List<String> | 운임 기준 코드 |
identityCode | String | 신분 코드 |
identityType | IdentityType? | 신분 타입 |
계산 프로퍼티:
airPrice: 항공료 (total - tax)
FreeBaggageResponse
무료 수하물 정보.
| 필드 | 타입 | 설명 |
|---|---|---|
volume | Int | 수량/무게 |
unit | BaggageUnit | 단위 (KG, PC) |
AmenityResponse
기내 서비스 정보.
| 필드 | 타입 | 설명 |
|---|---|---|
beverages | List<Beverage>? | 음료 서비스 |
entertainment | Entertainment? | 엔터테인먼트 |
food | Food? | 기내식 |
layout | Layout? | 좌석 배치 |
power | Power? | 전원 공급 |
seat | Seat? | 좌석 정보 |
wifi | Wifi? | 와이파이 |
사용처
| 사용 위치 | 용도 |
|---|---|
| AdapterClient | 검색 응답 파싱 |
| FlightSearchService | 검색 결과 처리 |
| FlightDetailService | 상세 정보 처리 |
특징
- 계층적 구조: FareItinerary → Schedule → Segment → Leg
- MIX 지원: tripDirectionType으로 편도 조합 구분
- 상세 정보: 터미널, 기종, 기내 서비스 등 풍부한 정보
- Serializable: 캐싱 지원