-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathair_shopping_rs.go
247 lines (201 loc) · 4.67 KB
/
air_shopping_rs.go
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
package s7_api_sdk
import (
"fmt"
"time"
)
type AirShoppingRS struct {
Version string `xml:"Version,attr"`
Document *Document
ShoppingResponseIDs *ShoppingResponseIDs
OffersGroup *OffersGroup
DataLists *DataLists
Metadata *Metadata
Errors *Errors
}
type OffersGroup struct {
AirlineOffers *AirlineOffers
}
type AirlineOffers struct {
TotalOfferQuantity int
Owner string
AirlineOffer []*AirlineOffer
}
type AirlineOffer struct {
OfferID *OfferID
TotalPrice *TotalPrice
PricedOffer *PricedOffer
}
type TotalPrice struct {
DetailCurrencyPrice *DetailCurrencyPrice
}
type DetailCurrencyPrice struct {
Total *Total
Details *DetailsPrice
Fees *Fees
Taxes *Taxes
}
type Fees struct {
Total *Total
}
type FlightSegmentReference struct {
Reference string `xml:"ref,attr"`
ClassOfService *ClassOfService
Cabin *CabinFlightSegment
BagDetailAssociation *BagDetailAssociation
}
type CabinFlightSegment struct {
CabinDesignator string
MarketingName string
}
type AnonymousTravelerList struct {
AnonymousTraveler []*User
}
type CheckedBagAllowanceList struct {
CheckedBagAllowance []*CheckedBagAllowance
}
type CheckedBagAllowance struct {
Reference string `xml:"refs,attr,omitempty"`
ID string `xml:"ListKey,attr,omitempty"`
WeightAllowance *WeightAllowance `xml:",omitempty"`
AllowanceDescription *AllowanceDescription `xml:",omitempty"`
PieceAllowance *PieceAllowance `xml:",omitempty"`
}
type WeightAllowance struct {
MaximumWeight *ValueUOM
Descriptions *Descriptions
}
type AllowanceDescription struct {
ApplicableParty string
Descriptions *Descriptions
}
type PieceAllowance struct {
ApplicableParty string
TotalQuantity int
Descriptions *Descriptions
PieceMeasurements *PieceMeasurements
}
type PieceMeasurements struct {
Quantity int `xml:",attr"`
}
type FareList struct {
FareGroup []*FareGroup
}
type FareGroup struct {
Refs string `xml:"refs,attr,omitempty"`
ID string `xml:"ListKey,attr"`
Fare *Fare
FareBasisCode *FareBasisCode
}
type Fare struct {
FareCode *FareCode
FareDetail *FareDetail
}
type FareCode struct {
Code string
}
type ParametersRS struct {
Quantity int `xml:",attr"`
}
type PriceBreakdown struct {
Price *Price
}
type Price struct {
BaseAmount *Total
FareFiledIn *FareFiledIn
Taxes *Taxes
}
type FlightSegmentList struct {
FlightSegment []*FlightSegment
}
type FlightSegment struct {
SegmentKey string `xml:",attr"`
Departure *Point
Arrival *Point
MarketingCarrier *Carrier
OperatingCarrier *Carrier
Equipment *Equipment
ClassOfService *ClassOfService
FlightDetail *FlightDetail
}
type FlightDetail struct {
FlightDistance *ValueUOM
FlightDuration *FlightDuration
Stops *Stops `xml:",omitempty"`
}
type Stops struct {
StopQuantity int
StopLocations []*StopLocation
}
type StopLocation struct {
AirportCode string
ArrivalDate string
ArrivalTime string
DepartureDate string
DepartureTime string
GroundTime string
}
func (l *StopLocation) GetArrivalDate() time.Time {
date, _ := time.Parse(longForm, fmt.Sprintf("%s %s", l.ArrivalDate, l.ArrivalTime))
return date
}
func (l *StopLocation) GetDepartureDate() time.Time {
date, _ := time.Parse(longForm, fmt.Sprintf("%s %s", l.DepartureDate, l.DepartureTime))
return date
}
type ValueUOM struct {
Value int
UOM string
}
type FlightDuration struct {
Value string
}
type FlightList struct {
Flight []*Flight
}
type OriginDestinationList struct {
OriginDestination []*OriginDestinationRS
}
type OriginDestinationRS struct {
ID string `xml:"OriginDestinationKey,attr"`
DepartureCode string
ArrivalCode string
FlightReferences string
}
type PenaltyList struct {
Penalty []*Penalty
}
type Penalty struct {
FareGroupReference string `xml:"refs,attr"`
ID string `xml:"ObjectKey,attr"`
Details *Details
}
type Details struct {
Detail []*Detail
}
type Detail struct {
Type string
Amounts *Amounts
}
type Amounts struct {
Amount []*Amount
}
type Amount struct {
CurrencyAmountValue *CurrencyAmountValue
AmountApplication string
}
type CurrencyAmountValue struct {
Code string `xml:",attr"`
Value float32 `xml:",chardata"`
}
type PriceClassList struct {
PriceClass []*PriceClass
}
type PriceClass struct {
ID string `xml:"ObjectKey,attr"`
Name string
FareBasisCode *FareBasisCode
ClassOfService *ClassOfService
}
type BagDetailAssociation struct {
CheckedBagReferences string
}