-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReservation.ts
160 lines (158 loc) · 3.96 KB
/
Reservation.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
import Affiliate from './Affiliate';
import { CachedCar } from './CachedCar';
import { CancellationPolicy, CreditCard, Insurance } from './Vehicle';
/**
* @interface Reservation
* @description 예약 정보
*/
export interface Reservation {
/**
* @type string
* @description 예약 번호 (카모아에서 전달 받은 예약 번호)
* <br>
* - Available: BG_와 같이 API Identifier + underscore로 시작하는 어떠한 값 (카모아에서 저장한 예약에대한 고유 번호)
* @nullable false
* @required true
* @example BG999999999
* @default N/A
*/
reservationNumber: string;
/**
* @type CachedCar
* @description 예약한 차량의 차종 정보
* @nullable false
* @required true
* @example CachedCar
* @default N/A
*/
car: CachedCar;
/**
* @type Affiliate
* @description 예약한 업체 정보
* @nullable false
* @required true
* @example Affiliate
* @default N/A
*/
shop: Affiliate;
/**
* @type ReservationVehicle
* @description 예약한 차량 정보
* @nullable false
* @required true
* @example ReservationVehicle
* @default N/A
*/
vehicle:ReservationVehicle;
}
/**
* @interface ReservationVehicle
* @description 예약한 차량 정보
*/
export interface ReservationVehicle {
fuelPolicy: string;
/**
* @type Insurance
* @description 예약 된 차량의 보험
* <br>
* - 운영 시간이 변동되는 API의 경우 "가장 많이 노출된 운영시간"을 사용한다.
* @nullable false
* @required true
* @example Insurance
* @default N/A
*/
insurance: Insurance;
/**
* @type Number
* @description 예약 된 차량의 예약 가능 최소 연령
* @nullable false
* @required true
* @example 21
* @default N/A
*/
minimumAge: number;
/**
* @type Number
* @description 예약 된 차량의 최소 무료 연령
* <br>
* *이 나이 이상이면 나이에 따른 추가요금이 부과되지 않아야 함.<br>
* *나이별 추가 금액이 없다면 freeAge는 보통 minAge이다.
* @nullable false
* @required true
* @example 23
* @default N/A
*/
freeAge: number;
/**
* @type Number
* @description 예약 된 차량의 예약 가능 최대 연령
* @nullable false
* @required true
* @example 80
* @default N/A
*/
maximumAge: number;
/**
* @type String
* @description 차량을 운전하기 위한 운전경력 최소 년도 수
* @nullable true
* @required true
* @example 0
* @default 1
*/
requiredDrivingExperience: number;
/**
* @type CreditCard[]
* @description 예약 시 가능한 카드 정보 및 부과될 보증금에대한 정보
* @nullable false
* @required true
* @example CreditCard[]
* @default []
*/
creditCard: CreditCard[];
/**
* @type Boolean
* @description 운행 거리 제한 여부
* @nullable false
* @required true
* @example true
* @default N/A
*/
isDistanceUnlimited: boolean;
/**
* @type String
* @description 운행 거리 제한 기준
* <br>
* ∙ isDistanceUnlimited 값이 false 인 경우에만 해당 값이 존재
* - DAY 1일당 {distanceLimit} 이하
* - RENTAL 렌트 기간 동안 {distanceLimit} 이하
* - HOUR 1시간 동안 {distanceLimit} 이하
* @nullable true
* @required false
* @example 'RENTAL'
* @default 'RENTAL'
*/
distanceLimitType: string;
/**
* @type String
* @description 가능한 운행 거리
* <br>
* ∙ isDistanceUnlimited 값이 false 인 경우에만 해당 값이 존재
* @nullable false
* @required true
* @example '150(Mile)'
* @default ''
*/
distanceLimit: string;
/**
* @type CancellationPolicy[]
* @description 예약 된 차량의 취소수수료 정보
* <br>
* 예약 당시 정보를 저장하여 보내야 한다.
* @nullable false
* @required true
* @example CancellationPolicy
* @default N/A
*/
cancellationPolicy: CancellationPolicy;
}