@bisondesk/core-sdk 1.0.21 → 1.0.23-B

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/lib/apis/crm.d.ts +39 -0
  2. package/lib/apis/crm.d.ts.map +1 -0
  3. package/lib/apis/crm.js +201 -0
  4. package/lib/apis/crm.js.map +1 -0
  5. package/lib/apis/documents.d.ts +4 -0
  6. package/lib/apis/documents.d.ts.map +1 -0
  7. package/lib/apis/documents.js +47 -0
  8. package/lib/apis/documents.js.map +1 -0
  9. package/lib/apis/internet-vehicles.d.ts +3 -0
  10. package/lib/apis/internet-vehicles.d.ts.map +1 -0
  11. package/lib/apis/internet-vehicles.js +27 -0
  12. package/lib/apis/internet-vehicles.js.map +1 -0
  13. package/lib/apis/leasing-administration.d.ts +8 -0
  14. package/lib/apis/leasing-administration.d.ts.map +1 -0
  15. package/lib/apis/leasing-administration.js +49 -0
  16. package/lib/apis/leasing-administration.js.map +1 -0
  17. package/lib/apis/leasing.d.ts +19 -0
  18. package/lib/apis/leasing.d.ts.map +1 -0
  19. package/lib/apis/leasing.js +168 -0
  20. package/lib/apis/leasing.js.map +1 -0
  21. package/lib/apis/opportunities.d.ts +9 -0
  22. package/lib/apis/opportunities.d.ts.map +1 -0
  23. package/lib/apis/opportunities.js +94 -0
  24. package/lib/apis/opportunities.js.map +1 -0
  25. package/lib/apis/picklists.d.ts +5 -0
  26. package/lib/apis/picklists.d.ts.map +1 -0
  27. package/lib/apis/picklists.js +44 -0
  28. package/lib/apis/picklists.js.map +1 -0
  29. package/lib/apis/tenants.d.ts +7 -0
  30. package/lib/apis/tenants.d.ts.map +1 -0
  31. package/lib/apis/tenants.js +80 -0
  32. package/lib/apis/tenants.js.map +1 -0
  33. package/lib/apis/users.d.ts +3 -0
  34. package/lib/apis/users.d.ts.map +1 -0
  35. package/lib/apis/users.js +26 -0
  36. package/lib/apis/users.js.map +1 -0
  37. package/lib/apis/utils.d.ts +9 -0
  38. package/lib/apis/utils.d.ts.map +1 -0
  39. package/lib/apis/utils.js +23 -0
  40. package/lib/apis/utils.js.map +1 -0
  41. package/lib/apis/vehicles.d.ts +18 -0
  42. package/lib/apis/vehicles.d.ts.map +1 -0
  43. package/lib/apis/vehicles.js +159 -0
  44. package/lib/apis/vehicles.js.map +1 -0
  45. package/lib/constants.d.ts +77 -0
  46. package/lib/constants.d.ts.map +1 -1
  47. package/lib/constants.js +924 -1
  48. package/lib/constants.js.map +1 -1
  49. package/lib/ddb-entities.d.ts +2 -0
  50. package/lib/ddb-entities.d.ts.map +1 -0
  51. package/lib/ddb-entities.js +5 -0
  52. package/lib/ddb-entities.js.map +1 -0
  53. package/lib/types/activities.d.ts +38 -0
  54. package/lib/types/activities.d.ts.map +1 -0
  55. package/lib/types/activities.js +16 -0
  56. package/lib/types/activities.js.map +1 -0
  57. package/lib/types/crm.d.ts +103 -30
  58. package/lib/types/crm.d.ts.map +1 -1
  59. package/lib/types/crm.js +16 -0
  60. package/lib/types/crm.js.map +1 -1
  61. package/lib/types/definitions.d.ts +15 -13
  62. package/lib/types/definitions.d.ts.map +1 -1
  63. package/lib/types/documents.d.ts +105 -0
  64. package/lib/types/documents.d.ts.map +1 -0
  65. package/lib/types/{interests.js → documents.js} +1 -1
  66. package/lib/types/documents.js.map +1 -0
  67. package/lib/types/fields.d.ts +26 -25
  68. package/lib/types/fields.d.ts.map +1 -1
  69. package/lib/types/fields.js +4 -0
  70. package/lib/types/fields.js.map +1 -1
  71. package/lib/types/internet-vehicles.d.ts +64 -0
  72. package/lib/types/internet-vehicles.d.ts.map +1 -0
  73. package/lib/types/internet-vehicles.js +3 -0
  74. package/lib/types/internet-vehicles.js.map +1 -0
  75. package/lib/types/leads.d.ts +134 -0
  76. package/lib/types/leads.d.ts.map +1 -0
  77. package/lib/types/leads.js +3 -0
  78. package/lib/types/leads.js.map +1 -0
  79. package/lib/types/leasing-administration.d.ts +107 -0
  80. package/lib/types/leasing-administration.d.ts.map +1 -0
  81. package/lib/types/leasing-administration.js +3 -0
  82. package/lib/types/leasing-administration.js.map +1 -0
  83. package/lib/types/leasing-search.d.ts +22 -0
  84. package/lib/types/leasing-search.d.ts.map +1 -0
  85. package/lib/types/leasing-search.js +3 -0
  86. package/lib/types/leasing-search.js.map +1 -0
  87. package/lib/types/leasing-settings.d.ts +113 -0
  88. package/lib/types/leasing-settings.d.ts.map +1 -0
  89. package/lib/types/leasing-settings.js +10 -0
  90. package/lib/types/leasing-settings.js.map +1 -0
  91. package/lib/types/leasing.d.ts +322 -0
  92. package/lib/types/leasing.d.ts.map +1 -0
  93. package/lib/types/leasing.js +24 -0
  94. package/lib/types/leasing.js.map +1 -0
  95. package/lib/types/machines.d.ts +38 -0
  96. package/lib/types/machines.d.ts.map +1 -0
  97. package/lib/types/machines.js +3 -0
  98. package/lib/types/machines.js.map +1 -0
  99. package/lib/types/opportunities.d.ts +448 -0
  100. package/lib/types/opportunities.d.ts.map +1 -0
  101. package/lib/types/opportunities.js +68 -0
  102. package/lib/types/opportunities.js.map +1 -0
  103. package/lib/types/payments.d.ts +38 -0
  104. package/lib/types/payments.d.ts.map +1 -0
  105. package/lib/types/payments.js +9 -0
  106. package/lib/types/payments.js.map +1 -0
  107. package/lib/types/picklists.d.ts +15 -4
  108. package/lib/types/picklists.d.ts.map +1 -1
  109. package/lib/types/quotes.d.ts +173 -0
  110. package/lib/types/quotes.d.ts.map +1 -0
  111. package/lib/types/quotes.js +26 -0
  112. package/lib/types/quotes.js.map +1 -0
  113. package/lib/types/recently-viewed.d.ts +33 -0
  114. package/lib/types/recently-viewed.d.ts.map +1 -0
  115. package/lib/types/recently-viewed.js +3 -0
  116. package/lib/types/recently-viewed.js.map +1 -0
  117. package/lib/types/saved-filters.d.ts +20 -0
  118. package/lib/types/saved-filters.d.ts.map +1 -0
  119. package/lib/types/saved-filters.js +3 -0
  120. package/lib/types/saved-filters.js.map +1 -0
  121. package/lib/types/search.d.ts +26 -4
  122. package/lib/types/search.d.ts.map +1 -1
  123. package/lib/types/search.js.map +1 -1
  124. package/lib/types/settings.d.ts +50 -0
  125. package/lib/types/settings.d.ts.map +1 -0
  126. package/lib/types/settings.js +3 -0
  127. package/lib/types/settings.js.map +1 -0
  128. package/lib/types/storage.d.ts +1 -11
  129. package/lib/types/storage.d.ts.map +1 -1
  130. package/lib/types/storage.js +15 -0
  131. package/lib/types/storage.js.map +1 -1
  132. package/lib/types/templates.d.ts +35 -0
  133. package/lib/types/templates.d.ts.map +1 -0
  134. package/lib/types/templates.js +9 -0
  135. package/lib/types/templates.js.map +1 -0
  136. package/lib/types/tenants.d.ts +32 -9
  137. package/lib/types/tenants.d.ts.map +1 -1
  138. package/lib/types/tenants.js +11 -0
  139. package/lib/types/tenants.js.map +1 -1
  140. package/lib/types/users.d.ts +11 -3
  141. package/lib/types/users.d.ts.map +1 -1
  142. package/lib/types/utils.d.ts +20 -0
  143. package/lib/types/utils.d.ts.map +1 -1
  144. package/lib/types/utils.js +6 -0
  145. package/lib/types/utils.js.map +1 -1
  146. package/lib/types/vehicles.d.ts +406 -92
  147. package/lib/types/vehicles.d.ts.map +1 -1
  148. package/lib/types/vehicles.js +54 -1
  149. package/lib/types/vehicles.js.map +1 -1
  150. package/lib/types/website.d.ts +24 -0
  151. package/lib/types/website.d.ts.map +1 -0
  152. package/lib/types/website.js +3 -0
  153. package/lib/types/website.js.map +1 -0
  154. package/lib/utils/forms.d.ts +6 -0
  155. package/lib/utils/forms.d.ts.map +1 -0
  156. package/lib/utils/forms.js +33 -0
  157. package/lib/utils/forms.js.map +1 -0
  158. package/lib/utils/leasing.d.ts +3 -0
  159. package/lib/utils/leasing.d.ts.map +1 -0
  160. package/lib/utils/leasing.js +10 -0
  161. package/lib/utils/leasing.js.map +1 -0
  162. package/lib/utils/slug.d.ts +3 -0
  163. package/lib/utils/slug.d.ts.map +1 -0
  164. package/lib/utils/slug.js +23 -0
  165. package/lib/utils/slug.js.map +1 -0
  166. package/lib/utils/tenants.d.ts +4 -0
  167. package/lib/utils/tenants.d.ts.map +1 -0
  168. package/lib/utils/tenants.js +16 -0
  169. package/lib/utils/tenants.js.map +1 -0
  170. package/lib/utils/vehicles.d.ts +12 -0
  171. package/lib/utils/vehicles.d.ts.map +1 -0
  172. package/lib/utils/vehicles.js +73 -0
  173. package/lib/utils/vehicles.js.map +1 -0
  174. package/package.json +8 -6
  175. package/src/apis/crm.ts +302 -0
  176. package/src/apis/documents.ts +54 -0
  177. package/src/apis/internet-vehicles.ts +23 -0
  178. package/src/apis/leasing-administration.ts +70 -0
  179. package/src/apis/leasing.ts +257 -0
  180. package/src/apis/opportunities.ts +133 -0
  181. package/src/apis/picklists.ts +50 -0
  182. package/src/apis/tenants.ts +100 -0
  183. package/src/apis/users.ts +22 -0
  184. package/src/apis/utils.ts +23 -0
  185. package/src/apis/vehicles.ts +229 -0
  186. package/src/constants.ts +930 -1
  187. package/src/ddb-entities.ts +1 -0
  188. package/src/environment.d.ts +6 -0
  189. package/src/types/activities.ts +41 -0
  190. package/src/types/crm.ts +118 -30
  191. package/src/types/definitions.ts +19 -12
  192. package/src/types/documents.ts +110 -0
  193. package/src/types/fields.ts +72 -31
  194. package/src/types/internet-vehicles.ts +67 -0
  195. package/src/types/leads.ts +144 -0
  196. package/src/types/leasing-administration.ts +131 -0
  197. package/src/types/leasing-search.ts +24 -0
  198. package/src/types/leasing-settings.ts +111 -0
  199. package/src/types/leasing.ts +360 -0
  200. package/src/types/machines.ts +40 -0
  201. package/src/types/opportunities.ts +496 -0
  202. package/src/types/payments.ts +40 -0
  203. package/src/types/picklists.ts +26 -7
  204. package/src/types/quotes.ts +186 -0
  205. package/src/types/recently-viewed.ts +45 -0
  206. package/src/types/saved-filters.ts +21 -0
  207. package/src/types/search.ts +34 -4
  208. package/src/types/settings.ts +51 -0
  209. package/src/types/storage.ts +1 -12
  210. package/src/types/templates.ts +40 -0
  211. package/src/types/tenants.ts +37 -11
  212. package/src/types/users.ts +17 -3
  213. package/src/types/utils.ts +25 -0
  214. package/src/types/vehicles.ts +461 -93
  215. package/src/types/website.ts +28 -0
  216. package/src/utils/forms.ts +32 -0
  217. package/src/utils/leasing.ts +14 -0
  218. package/src/utils/slug.ts +19 -0
  219. package/src/utils/tenants.ts +14 -0
  220. package/src/utils/vehicles.ts +92 -0
  221. package/tsconfig.tsbuildinfo +1 -2995
  222. package/lib/types/interests.d.ts +0 -23
  223. package/lib/types/interests.d.ts.map +0 -1
  224. package/lib/types/interests.js.map +0 -1
  225. package/src/types/interests.ts +0 -20
@@ -0,0 +1,360 @@
1
+ import { EmailMessage } from '@bisondesk/commons-sdk/lib/messages';
2
+ import {
3
+ AttachmentValue,
4
+ Document,
5
+ LinkValue,
6
+ PaginatedList,
7
+ } from '@bisondesk/commons-sdk/lib/types';
8
+ import { SortFilter } from './search';
9
+ import { ReferenceData } from './utils';
10
+
11
+ export type LeasingContractEvent = {
12
+ id: string;
13
+ action: 'create' | 'update' | 'delete';
14
+ actionAt: string;
15
+ userId: string;
16
+ tenantId: string;
17
+ contract: LeasingContract;
18
+ };
19
+
20
+ export type LeasingContractImportEvent = {
21
+ tenantId: string;
22
+ };
23
+
24
+ export type LeasingConditionEvent = {
25
+ id: string;
26
+ action: 'create';
27
+ actionAt: string;
28
+ userId: string;
29
+ tenantId: string;
30
+ };
31
+
32
+ export type OverdueDossier = {
33
+ id: string;
34
+ organizationId: string;
35
+ organizationName: string;
36
+ status: 'ONGOING' | 'ERROR' | 'SUCCESS' | 'EXPIRED';
37
+ emails: EmailMessage[];
38
+ createdAt: string;
39
+ modifiedAt: string;
40
+ completedAt?: string;
41
+ nextActionAt: string;
42
+ riskLevel: number;
43
+ };
44
+
45
+ export type LeasingContractClient = {
46
+ organizationId: string;
47
+ contactIds: string[];
48
+ email?: string;
49
+ since: string;
50
+ takeoverId?: string;
51
+ country: string;
52
+ beEntityType?: 'Legal Person' | 'Natural Person';
53
+ beForeignEntity?: boolean;
54
+
55
+ /**
56
+ * Used to overwrite the startDate in the context of a Becris declaration. This might be necessary
57
+ * when due to some data-quality issue we do not report the contract at the right period and it is no
58
+ * longer possible to resend the declaration for the corresponding month.
59
+ */
60
+ becrisStartDate?: string;
61
+ };
62
+
63
+ export enum LeasingContractSource {
64
+ HYPERPORTAL = 'hyperportal',
65
+ BISONDESK = 'bisondesk',
66
+ }
67
+
68
+ export enum LeasingContractStatus {
69
+ DRAFT = 'draft',
70
+ DISCARDED = 'discarded',
71
+ PAUSED = 'paused',
72
+ ACTIVE = 'active',
73
+ ENDED = 'ended',
74
+ }
75
+
76
+ export type LeasingContractHyperportal = {
77
+ source: LeasingContractSource.HYPERPORTAL;
78
+ /** oldest first **/
79
+ conditions: ConditionsRef[];
80
+ opportunities?: undefined;
81
+ };
82
+
83
+ export type LeasingContractBisondesk = {
84
+ source: LeasingContractSource.BISONDESK;
85
+ conditions?: undefined;
86
+ /** oldest first **/
87
+ opportunities: OpportunityRef[];
88
+ };
89
+
90
+ export type LeasingContract<T = LeasingContractHyperportal | LeasingContractBisondesk> = {
91
+ id: string;
92
+ createdAt: string;
93
+ updatedAt: string;
94
+ contractNumber?: string;
95
+ startDate: string;
96
+ deliveryDate?: string;
97
+ endDate?: string;
98
+ slbPartner?: string;
99
+ links?: LinkValue[];
100
+ accountManager?: string;
101
+ clients: LeasingContractClient[];
102
+ vehicle: {
103
+ id: string;
104
+ stockNumber: string;
105
+ administrativeNumber?: string;
106
+ };
107
+ status: LeasingContractStatus;
108
+ documents: Document[];
109
+ } & T;
110
+
111
+ type BaseRef = {
112
+ id: string;
113
+ depositAmount: string;
114
+ durationInMonths: number;
115
+ saleAmount: string; // includes the extras
116
+ interestRate: string;
117
+ residualAmount: string;
118
+ leasingMonthlyAmount: string; //Value excluding VAT
119
+ otherMonthlyAmounts: string; //Value excluding VAT
120
+ totalMonthlyAmount: string; //Value excluding VAT
121
+ };
122
+
123
+ export type ConditionsRef = BaseRef & {
124
+ validSince: string;
125
+ };
126
+
127
+ export type OpportunityRef = BaseRef & {
128
+ createdAt: string;
129
+ quoteId: string;
130
+ //Since VAT is client specific and contracts can be transferred between clients, we always handle values without VAT
131
+ };
132
+
133
+ export type ListOverdueRemindersResponse = PaginatedList<OverdueDossier, ReferenceData>;
134
+ export type ListOverdueRemindersRequest = {
135
+ offset: number;
136
+ limit: number;
137
+ sortBy: SortFilter;
138
+ };
139
+
140
+ export type ListBecrisDeclarationsRequest = {
141
+ offset: number;
142
+ limit: number;
143
+ };
144
+
145
+ export type NewLeasingConditions = {
146
+ parameters: {
147
+ yearlyRoadTax: string;
148
+ civilLiability: string;
149
+ oneTimeRoadTax: string;
150
+ specialInsurance: string;
151
+ allRisksPercentage: string;
152
+ allRisksTaxPercentage: string;
153
+ };
154
+
155
+ inputs: {
156
+ deposit: string;
157
+ salesPrice: string;
158
+ bankDeposit: string;
159
+ purchasePrice: string;
160
+ residualValue: string;
161
+ insuranceAmount: string;
162
+ durationInMonths: number;
163
+ includesAllRisks: boolean;
164
+ marginPercentage: string;
165
+ bankResidualValue: string;
166
+ bankDurationInMonths: number;
167
+ startupFeePercentage: string;
168
+ includesYearlyRoadTax: boolean;
169
+ includesCivilLiability: boolean;
170
+ includesOneTimeRoadTax: boolean;
171
+ interestRatePercentage: string;
172
+ includesSpecialInsurance: boolean;
173
+ monthlyAdministrationFee: string;
174
+ bankInterestRatePercentage: string;
175
+ };
176
+
177
+ outputs: {
178
+ ROI: string;
179
+ ROITarget: string;
180
+ ROIPerYear: string;
181
+ cashDeficit: string;
182
+ totalProfit: string;
183
+ ROIDifference: string;
184
+ leasingAmount: string;
185
+ leasingProfit: string;
186
+ vehicleProfit: string;
187
+ oneTimeTaxCost: string;
188
+ financingAmount: string;
189
+ bankContractValue: string;
190
+ bankLeasingAmount: string;
191
+ totalMonthlyPayment: string;
192
+ leasingContractValue: string;
193
+ monthlyTaxRetailPrice: string;
194
+ allRisksInsuranceAmount: string;
195
+ };
196
+
197
+ cashIn: Array<{
198
+ time: string;
199
+ cashIn: string;
200
+ deposit: string;
201
+ startupFee: string;
202
+ taxPayment: string;
203
+ residualValue: string;
204
+ cumulativeCash: string;
205
+ insurancePayment: string;
206
+ monthlyAdministrationFee: string;
207
+ leasingAmountWithoutAdminFee: string;
208
+ }>;
209
+
210
+ cashOut: Array<{
211
+ time: string;
212
+ cashOut: string;
213
+ deposit: string;
214
+ taxPayment: string;
215
+ leasingAmount: string;
216
+ residualValue: string;
217
+ cumulativeCash: string;
218
+ insurancePayment: string;
219
+ }>;
220
+ };
221
+
222
+ export type LeasingConditions = NewLeasingConditions & {
223
+ id: string;
224
+ createdAt: string;
225
+ createdBy: string;
226
+ amortization: AmortizationTable;
227
+ };
228
+
229
+ export type AmortizationRow = {
230
+ period: number;
231
+ /* An estimate of the date in which the period will happen
232
+ based on the contract start date. Empty for period zero. */
233
+ expectedPeriodDate?: string;
234
+ buyOff: string;
235
+ payment: string;
236
+ capital: string;
237
+ interest: string;
238
+ totalInterest: string;
239
+ balance: string;
240
+ };
241
+
242
+ export type AmortizationTable = {
243
+ annualInterestRate?: string;
244
+ monthlyInterestRate?: string;
245
+ rows: AmortizationRow[];
246
+ };
247
+
248
+ export type AmortizationDocsEvent = {
249
+ contractId: string;
250
+ changedDocumentIds: string[];
251
+ actionAt: string;
252
+ userId: string;
253
+ tenantId: string;
254
+ };
255
+
256
+ export type AmortizationDocs = {
257
+ contractId: string;
258
+ period: number;
259
+ documents: AmortizationDoc[];
260
+ };
261
+
262
+ export type AmortizationDoc = {
263
+ amount: string;
264
+ bookingNumber: string;
265
+ branchId: string;
266
+ documentId: string;
267
+ issueDate: string;
268
+ subtype: 'Invoice' | 'Credit Note';
269
+ clientExternalId: number;
270
+ };
271
+
272
+ export type BecrisDeclaration = {
273
+ createdAt: string;
274
+ endDate: string;
275
+ endingInstruments: number;
276
+ existingInstruments: number;
277
+ file: AttachmentValue;
278
+ id: string;
279
+ newInstruments: number;
280
+ startDate: string;
281
+ };
282
+
283
+ export type LeasingReportingSettings = {
284
+ active: boolean;
285
+ branchId: string;
286
+ tenantId: string;
287
+ };
288
+
289
+ export enum LeasingRemindersSortableColumns {
290
+ NextActionAt = 'next_action_at',
291
+ OrganizationName = 'organization_name',
292
+ RemindersCount = 'reminders_count',
293
+ Status = 'status',
294
+ }
295
+
296
+ export type AmortizationTableRequest = {
297
+ leasingAmount: string; // monthly amount
298
+ deposit: string;
299
+ salesPrice: string;
300
+ duration: number; // in months
301
+ residual: string;
302
+ monthlyInterestRate: string; // the annual interest rate divided by 12
303
+ startDate?: string; // should be filled in if you want an amortization table with expected period dates
304
+ };
305
+
306
+ export type AmortizationTableTemplateData = {
307
+ opportunity: {
308
+ id: string;
309
+ };
310
+ v: {
311
+ make: string;
312
+ model: string;
313
+ category: string;
314
+ type?: string;
315
+ vin: string;
316
+ year?: string | number;
317
+ stockNumber: string;
318
+ };
319
+ c: {
320
+ clientNumber: number;
321
+ company: string;
322
+ fullName: string;
323
+ vatNumber?: string;
324
+ email?: string;
325
+ phone?: string;
326
+ address?: string;
327
+ };
328
+ leasing: {
329
+ salesPrice: string;
330
+ salesPriceVat: string;
331
+ salesPriceExclVat: string;
332
+ deposit: string;
333
+ depositExclVat: string;
334
+ depositVat: string;
335
+ installment: string;
336
+ installmentVat: string;
337
+ installmentExclVat: string;
338
+ duration: number;
339
+ monthlyInsurance: string;
340
+ monthlyTax: string;
341
+ monthlyTaxesInsurance: string;
342
+ residual: string;
343
+ residualVat: string;
344
+ residualExclVat: string;
345
+ offerNumber: string;
346
+ contractNumber: string;
347
+ vatPercentage: string;
348
+ };
349
+ amortization: {
350
+ period: number;
351
+ periodStartDate: string;
352
+ periodEndDate: string;
353
+ deposit: string;
354
+ startUpFee: string;
355
+ monthlyAmount: string;
356
+ insurance: string;
357
+ expirationDate: string;
358
+ total: string;
359
+ }[];
360
+ };
@@ -0,0 +1,40 @@
1
+ export type Machine = {
2
+ axlesConfiguration?: string;
3
+ bodywork?: string;
4
+ category: string;
5
+ vin?: string;
6
+ cocPvg?: string;
7
+ emptyWeightKg?: number;
8
+ euronorm?: string;
9
+ firstRegistration?: string;
10
+ gearbox?: string;
11
+ kilometers?: number;
12
+ make?: string;
13
+ makeModel?: string;
14
+ makeModelText?: string;
15
+ makeModelType?: string;
16
+ makeModelTypeText?: string;
17
+ powerHp?: number;
18
+ productionYear?: number;
19
+ suspension?: string;
20
+ totalWeightKg?: number;
21
+ wheelbaseCm?: number;
22
+
23
+ references: MachineReference[];
24
+ id: string;
25
+ };
26
+
27
+ export type MachineReference = {
28
+ administrativeNumber?: string;
29
+ metaId: string;
30
+ stockNumber: string;
31
+ tenantId: string;
32
+ vehicleId: string;
33
+ };
34
+
35
+ export type MachineEvent = {
36
+ machine: Machine;
37
+ action: 'upsert' | 'delete';
38
+ actionAt: string;
39
+ namespace: string;
40
+ };