-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathOrderCreateRequest.ts
314 lines (312 loc) · 7.49 KB
/
OrderCreateRequest.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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
import { AvailableShopCombination } from '../../../Vehicle';
/**
* @interface OrderCreateRequestBody
* @description 예약 생성시 사용되는 Request Body DTO
* <br>
* - 2.0기준으로 추가운전자에대한 대응이 안돼있음
* - API에서 만약 추가운전자에대한 정보를 요구한다면 수정 필요
*/
export default interface OrderCreateRequestBody {
/**
* @type String
* @description carmore-common-api에서 식별하는 예약건의 고유 번호
* - $ {GlobalApiChannel Prefix}${OrderNumber}
* @nullable false
* @required true
* @example BG1231312
* @default N/A
*/
_id: string;
/**
* @type String
* @description 예약할 차량의 ID (Vehicle._id와 동일한 값)
* @nullable false
* @required true
* @example ''
* @default N/A
*/
id: string;
/**
* @type String
* @description 예약할 차량의 대여업체
* <br>
* 원웨이예약이 아니라면 pickupShop과 returnShop은 항상 같다.
* 차량목록에서 받은 AvailableShopCombination에서 가능한 조합만 상세 조회가 가능하다.
* @nullable false
* @required true
* @example KL_12
* @default N/A
*/
pickupShopId: string;
/**
* @type String
* @description 예약할 차량의 반납업체
* <br>
* 원웨이예약이 아니라면 pickupShop과 returnShop은 항상 같다.
* 차량목록에서 받은 AvailableShopCombination에서 가능한 조합만 상세 조회가 가능하다.
* @nullable false
* @required true
* @example KL_12
* @default N/A
*/
returnShopId: string;
/**
* @type String
* @description Currency (ISO 4217)
* @nullable false
* @required true
* @example 'USD'
* @default N/A
*/
currency: string;
/**
* @type String
* @description carmore-common-api에서 식별하는 예약건의 고유 번호
* - $ {GlobalApiChannel Prefix}${OrderNumber}
* @nullable false
* @required true
* @example BG1231312
* @default N/A
*/
carmoreOrderId: string;
/**
* @type String
* @description 국가코드 ISO 3166-1 alpha-2
* @nullable false
* @required true
* @example 'US'
* @default N/A
*/
countryCode: string;
/**
* @type String
* @description 국가코드 ISO 3166-1 alpha-2
* <br>
* 원웨이가 아닌경우 countryCode와 항상 같다
* @nullable false
* @required true
* @example 'US'
* @default N/A
*/
returnCountryCode: string;
/**
* @type String
* @description 현지 기준 차량 대여 시간
* <br>
* - Format: YYYY-MM-DDTHH:mm:ss
* @nullable false
* @required true
* @example 2022-11-22T05:31:45
* @default N/A
*/
pickupDateTime: string;
/**
* @type String
* @description 현지 시간 기준 반납 시간
* <br>
* - Format: YYYY-MM-DDTHH:mm:ss
* @nullable false
* @required true
* @example 2022-11-24T05:31:45
* @default N/A
*/
returnDateTime: string;
/**
* @type String
* @description 예약자의 국제전화 번호를 포함한 휴대전화 번호
* <br>
* 반드시 ITU-T 권고 E.164 번호를 사용해야한다.
* @nullable false
* @required true
* @example '+8201012345678'
* @default N/A
*/
driverPhone: string;
/**
* @type String
* @description 예약자의 이메일
* @nullable false
* @required true
* @example dev@teamo2.kr
* @default N/A
*/
driverEmail: string;
/**
* @type String
* @description 예약자의 출국 비행기 번호
* @nullable true
* @required false
* @example 'KE111'
* @default ''
*/
flightNo: string;
/**
* @type String
* @description 예약자 이름
* @nullable false
* @required true
* @example '오투'
* @default N/A
*/
driverFirstName: string;
/**
* @type String
* @description 예약자 성씨
* @nullable false
* @required true
* @example '팀'
* @default N/A
*/
driverLastName: string;
/**
* @type String
* @description 예약자의 성별
* <br>
* - M : 남성
* - F : 여성
* - 그외는 모두 정해지지 않은값.
* @nullable false
* @required false
* @example 'M'
* @default 'M'
*/
driverGender: string;
/**
* @type String
* @description 예약자의 연령
* @nullable false
* @required false
* @example 'M'
* @default 'M'
*/
driverAge: number;
/**
* @type Number
* @description 예약된 차량에 탑승할 성인의 수
* <br>
* - 차량에 탑승하는 총 인원은 adult + child + infant로 계산된다.
* @nullable false
* @required true
* @example 1
* @default 1
*/
adult: number;
/**
* @type Number
* @description 예약된 차량에 탑승할 아동의 수
* <br>
* 차량에 탑승하는 총 인원은 adult + child + infant로 계산된다.
* @nullable false
* @required true
* @example 1
* @default 0
*/
child: number;
/**
* @type Number
* @description 예약된 차량에 탑승할 영유아의 수
* <br>
* 차량에 탑승하는 총 인원은 adult + child + infant로 계산된다.
* @nullable false
* @required true
* @example 1
* @default 0
*/
infant: number;
/**
* @type Number
* @description 차량 검색 시 대여하고싶은 좌표 (위도)
* @nullable false
* @required true
* @example 127.001
* @default N/A
*/
pickupLatitude: number;
/**
* @type Number
* @description 차량 검색 시 대여하고싶은 좌표 (경도)
* @nullable false
* @required true
* @example 1.234
* @default N/A
*/
pickupLongitude: number;
/**
* @type Number
* @description 차량 검색 시 반납하고싶은 좌표 (위도)
* <br>
* 원웨이 차량조회시 해당값은 항상 다르다
* 만약 원웨이가 아닌경우 해당값은 항상 같다
* @nullable false
* @required true
* @example 127.001
* @default N/A
*/
returnLatitude: number;
/**
* @type Number
* @description 차량 검색 시 반납하고싶은 좌표 (경도)
* <br>
* 원웨이 차량조회시 해당값은 항상 다르다
* 만약 원웨이가 아닌경우 해당값은 항상 같다
* @nullable false
* @required true
* @example 127.001
* @default N/A
*/
returnLongitude: number;
/**
* @type OrderCreateRequestAddOn[]
* @description 예약 생성시 사용되는 차량의 부가서비스 구매 정보
* @nullable false
* @required true
* @example OrderCreateRequestAddOn[]
* @default []
*/
addOns: OrderCreateRequestAddOn[];
}
/**
* @interface OrderCreateRequestAddOn
* @description 예약 생성시 사용되는 차량의 부가서비스 정보
*/
export interface OrderCreateRequestAddOn {
/**
* @type String
* @description Unique Identifier of the AddOn
* <br>
* - Available: Vehicle의 _id + 부가서비스에 대한 고유 값 혹은 구분 가능한 이름 등
* @nullable false
* @required true
* @example ''
* @default N/A
*/
id: string;
/**
* @type Object[]
* @description 구매한 부가서비스의 옵션
* @nullable false
* @required truer
* @example []
* @default []
*/
selectableOptions: {
/**
* @type String
* @description 구매한 부가서비스 선택 가능한 옵션의 고유 값
* @nullable false
* @required true
* @example ''
* @default N/A
*/
value: string;
}[];
/**
* @type Number
* @description 구매한 부가서비스 갯수
* @nullable false
* @required true
* @example 1
* @default N/A
*/
count: number;
}