-
Notifications
You must be signed in to change notification settings - Fork 0
/
types.go
358 lines (326 loc) · 13.2 KB
/
types.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
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
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
package trivec
import (
"time"
"github.com/cydev/zero"
"github.com/omniboost/go-trivec/omitempty"
)
type Tickets []Ticket
type Ticket struct {
Type string `json:"$type"`
ActualDate Date `json:"ActualDate"`
CenterKey string `json:"CenterKey"`
CenterLeftNr int `json:"CenterLeftNr"`
CenterName string `json:"CenterName"`
CenterNr string `json:"CenterNr"`
CenterRightNr int `json:"CenterRightNr"`
Date Date `json:"Date,omitempty"`
Key string `json:"Key"`
AccountKey string `json:"AccountKey"`
AccountName string `json:"AccountName"`
AccountNr string `json:"AccountNr"`
Orders Orders `json:"Orders"`
PcName string `json:"PcName"`
PcNr int `json:"PcNr"`
PrepStatus string `json:"PrepStatus"`
TableName string `json:"TableName"`
TicketNr int `json:"TicketNr,omitempty"`
Time string `json:"Time"`
TotalPrice float64 `json:"TotalPrice"`
TotalToPay float64 `json:"TotalToPay"`
UserID string `json:"UserId"`
UserKey string `json:"UserKey"`
UserName string `json:"UserName"`
ZNumber int `json:"ZNumber,omitempty"`
Covers int `json:"Covers,omitempty"`
TableNr int `json:"TableNr,omitempty"`
}
type Orders []Order
type Order struct {
Type string `json:"$type"`
ActionID int `json:"ActionId"`
ActualDate Date `json:"ActualDate"`
Date Date `json:"Date"`
Key string `json:"Key"`
Lines OrderLines `json:"Lines"`
Paymodes Paymodes `json:"Paymodes"`
PcName string `json:"PcName"`
PcNr int `json:"PcNr"`
TicketKey string `json:"TicketKey"`
Time string `json:"Time"`
UserID string `json:"UserId"`
UserKey string `json:"UserKey"`
UserName string `json:"UserName"`
TableNr int `json:"TableNr,omitempty"`
}
type OrderLines []OrderLine
type OrderLine struct {
Type string `json:"$type"`
Addons []interface{} `json:"Addons"`
CourseNr int `json:"CourseNr"`
CourseName string `json:"CourseName"`
GroupKey string `json:"GroupKey"`
GroupLeftNr int `json:"GroupLeftNr"`
GroupName string `json:"GroupName"`
GroupRightNr int `json:"GroupRightNr"`
Key string `json:"Key"`
Memo string `json:"Memo"`
MenuID string `json:"MenuId"`
Price float64 `json:"Price"`
ProductKey string `json:"ProductKey"`
ProductName string `json:"ProductName"`
ProductNr int `json:"ProductNr"`
ProductType string `json:"ProductType"`
ProductTypeTranslated string `json:"ProductTypeTranslated"`
Qty float64 `json:"Qty"`
TotalDisc float64 `json:"TotalDisc"`
TotalEx float64 `json:"TotalEx"`
TotalInc float64 `json:"TotalInc"`
VatNr int `json:"VatNr"`
VatPerc float64 `json:"VatPerc"`
}
type Payments []Payment
type Payment struct {
Name string `json:"name"`
TotalPrice float64 `json:"totalPrice"`
TransactionID string `json:"transactionId"`
TransactionError string `json:"transactionError"`
Quantity float64 `json:"quantity"`
Units int `json:"units"`
Price float64 `json:"price"`
CreateDT time.Time `json:"createDT"`
Key string `json:"key"`
}
type DxProducts []DxProduct
type DxProduct struct {
Type string `json:"$type"`
AllowDiscount bool `json:"AllowDiscount,omitempty"`
AskCourse bool `json:"AskCourse"`
AutoAddons []interface{} `json:"AutoAddons"`
AutoWindows []interface{} `json:"AutoWindows"`
BarCode string `json:"BarCode"`
CenterKeys []interface{} `json:"CenterKeys"`
Color Color `json:"Color"`
ColorKey ColorKey `json:"ColorKey,omitempty"`
Description string `json:"Description"`
Fields []interface{} `json:"Fields"`
GroupKey string `json:"GroupKey"`
Info string `json:"Info"`
KDSColorKey KDSColorKey `json:"KDSColorKey"`
Key string `json:"Key"`
Name string `json:"Name"`
Parts []interface{} `json:"Parts"`
PAXCode string `json:"PAXCode"`
PieceGood bool `json:"PieceGood,omitempty"`
PreparationInfo string `json:"PreparationInfo"`
PrepGroupKey string `json:"PrepGroupKey,omitempty"`
PrepName string `json:"PrepName"`
PrepPrintAddons bool `json:"PrepPrintAddons"`
Price float64 `json:"Price,omitempty"`
Prices Prices `json:"Prices"`
PrintMemo bool `json:"PrintMemo"`
PrintX int `json:"PrintX"`
ProdNr int `json:"ProdNr"`
ProductLinks []interface{} `json:"ProductLinks"`
ProductType string `json:"ProductType"`
Promo string `json:"Promo"`
PromoCondition string `json:"PromoCondition"`
ShortName string `json:"ShortName"`
ShowInSearch bool `json:"ShowInSearch"`
Tags []interface{} `json:"Tags"`
TimeZoneKeys []interface{} `json:"TimeZoneKeys"`
Translations []interface{} `json:"Translations"`
UnitBase int `json:"UnitBase"`
Vat float64 `json:"Vat,omitempty"`
Vat2 float64 `json:"Vat2,omitempty"`
AskMemo bool `json:"AskMemo,omitempty"`
AskPrice bool `json:"AskPrice,omitempty"`
AllowZeroPrice bool `json:"AllowZeroPrice,omitempty"`
ImageKey string `json:"ImageKey,omitempty"`
PaymodeKey string `json:"PaymodeKey,omitempty"`
VoucherServiceName string `json:"VoucherServiceName,omitempty"`
Paymode DxPaymode `json:"Paymode,omitempty"`
}
type Prices []Price
type Price struct {
Type string `json:"$type"`
SeqNr int `json:"seqNr"`
Price float64 `json:"price"`
PriceCodeKey string `json:"PriceCodeKey"`
Key string `json:"key"`
}
type DxPaymodes []DxPaymode
type DxPaymode struct {
Type string `json:"$type"`
AskPrice bool `json:"AskPrice,omitempty"`
Color Color `json:"Color"`
ColorKey ColorKey `json:"ColorKey,omitempty"`
ConnectionID string `json:"ConnectionId"`
Data string `json:"Data"`
DefaultCash bool `json:"DefaultCash"`
Description string `json:"Description"`
Footer string `json:"Footer"`
GroupKey string `json:"GroupKey"`
GroupLeftNr int `json:"GroupLeftNr"`
GroupRightNr int `json:"GroupRightNr"`
Hotel string `json:"Hotel"`
Info string `json:"Info"`
KDSColorKey KDSColorKey `json:"KDSColorKey"`
Key string `json:"Key"`
Name string `json:"Name"`
OpenDrawer bool `json:"OpenDrawer,omitempty"`
PrintMemo bool `json:"PrintMemo"`
PrintX int `json:"PrintX"`
ProdNr int `json:"ProdNr,omitempty"`
ShortName string `json:"ShortName"`
ShowInSearch bool `json:"ShowInSearch"`
TerminalName string `json:"TerminalName"`
UnitBase int `json:"UnitBase"`
NoRefundDiffKey string `json:"NoRefundDiffKey,omitempty"`
PaymodeType string `json:"PaymodeType,omitempty"`
PaymodeTypeID int `json:"PaymodeTypeId,omitempty"`
AskQty bool `json:"AskQty,omitempty"`
IsCash bool `json:"IsCash,omitempty"`
Price float64 `json:"Price,omitempty"`
AskTip bool `json:"AskTip,omitempty"`
Drawer bool `json:"Drawer,omitempty"`
FastPayMode bool `json:"FastPayMode,omitempty"`
AccountRequired bool `json:"AccountRequired,omitempty"`
PrintSig bool `json:"PrintSig,omitempty"`
AskMemo bool `json:"AskMemo,omitempty"`
DefaultEpay bool `json:"DefaultEpay,omitempty"`
ParentPaymodeKey string `json:"ParentPaymodeKey,omitempty"`
CurrencyKey string `json:"CurrencyKey,omitempty"`
ImageKey string `json:"ImageKey,omitempty"`
PrintAddons bool `json:"PrintAddons"`
InvoiceType string `json:"InvoiceType,omitempty"`
InvoiceTypeID int `json:"InvoiceTypeId,omitempty"`
}
type PaymodeGroups []PaymodeGroup
type PaymodeGroup struct {
Type string `json:"$type"`
Data string `json:"Data"`
GroupLevel int `json:"GroupLevel"`
Key string `json:"Key"`
LeftNr int `json:"LeftNr"`
Name string `json:"Name"`
RightNr int `json:"RightNr"`
ColorKey ColorKey `json:"ColorKey,omitempty"`
}
type ColorKey struct {
Type string `json:"$type"`
PcKey int `json:"PcKey"`
RecNr int `json:"RecNr"`
}
type Color struct {
Type string `json:"$type"`
Background string `json:"Background"`
Foreground string `json:"Foreground"`
Key string `json:"Key"`
}
type KDSColorKey struct {
Type string `json:"$type"`
}
type Paymodes []Paymode
type Paymode struct {
Type string `json:"$type"`
GroupKey string `json:"GroupKey"`
GroupLeftNr int `json:"GroupLeftNr"`
GroupName string `json:"GroupName"`
GroupNr int `json:"GroupNr"`
GroupRightNr int `json:"GroupRightNr"`
Key string `json:"Key"`
Memo string `json:"Memo"`
PaymodeKey string `json:"PaymodeKey"`
PaymodeName string `json:"PaymodeName"`
PaymodeNr int `json:"PaymodeNr"`
PaymodeType string `json:"PaymodeType"`
Price float64 `json:"Price"`
Qty float64 `json:"Qty"`
TerminalID string `json:"TerminalId"`
Tip float64 `json:"Tip"`
Total float64 `json:"Total"`
TransactionID string `json:"TransactionId"`
}
type DxProdGroups []DxProdGroup
type DxProdGroup struct {
Type string `json:"$type"`
ColorKey ColorKey `json:"ColorKey,omitempty"`
Data string `json:"Data"`
GroupLevel int `json:"GroupLevel"`
Key string `json:"Key"`
LeftNr int `json:"LeftNr"`
Name string `json:"Name"`
RightNr int `json:"RightNr"`
VATCode VATCode `json:"VatCode,omitempty"`
VatCodeKey string `json:"VatCodeKey,omitempty"`
}
type VATCode struct {
Type string `json:"$type"`
Code int `json:"Code"`
Default bool `json:"Default"`
Default2 bool `json:"Default2"`
Key string `json:"Key"`
Name string `json:"Name"`
Vats DxVATs `json:"Vats"`
}
type DxVATs []DxVAT
type DxVAT struct {
Type string `json:"$type"`
CountryCode string `json:"CountryCode"`
FromDate Date `json:"FromDate"`
Key string `json:"Key"`
VAT float64 `json:"VAT"`
}
type AccountInfo struct {
Type string `json:"$type"`
Address string `json:"Address"`
City string `json:"City"`
ClientNr string `json:"ClientNr"`
CompanyName string `json:"CompanyName"`
Country string `json:"Country"`
Data string `json:"Data"`
EMail string `json:"EMail"`
FirstName string `json:"FirstName"`
Gender string `json:"Gender"`
GenderID int `json:"GenderId"`
Info string `json:"Info"`
Key string `json:"Key"`
Language string `json:"Language"`
LastName string `json:"LastName"`
MiddleName string `json:"MiddleName"`
NickName string `json:"NickName"`
Phone string `json:"Phone"`
State string `json:"State"`
VATNumber string `json:"VATNumber"`
ZipCode string `json:"ZipCode"`
BirthDay float64 `json:"BirthDay"`
CountryNr int `json:"CountryNr"`
}
type Customer struct {
Key string `json:"Key,omitempty"`
AccountType int `json:"AccountType,omitempty"`
ClientNr string `json:"ClientNr,omitempty"`
FirstName string `json:"FirstName,omitempty"`
LastName string `json:"LastName,omitempty"`
Company string `json:"Company,omitempty"`
VatNumber string `json:"VatNumber,omitempty"`
Address string `json:"Address,omitempty"`
ZipCode string `json:"ZipCode,omitempty"`
City string `json:"City,omitempty"`
Country string `json:"Country,omitempty"`
BirthDay Date `json:"BirthDay,omitempty"`
Blocked bool `json:"Blocked,omitempty"`
EMail string `json:"EMail,omitempty"`
MinValue float64 `json:"MinValue,omitempty"`
Phone string `json:"Phone,omitempty"`
Saldo float64 `json:"Saldo,omitempty"`
ValidFrom Date `json:"ValidFrom,omitempty"`
ValidTo Date `json:"ValidTo,omitempty"`
Vip bool `json:"Vip,omitempty"`
}
func (j Customer) MarshalJSON() ([]byte, error) {
return omitempty.MarshalJSON(j)
}
func (j Customer) IsEmpty() bool {
return zero.IsZero(j)
}