-
Notifications
You must be signed in to change notification settings - Fork 0
/
staged-quote.ts
345 lines (343 loc) · 9.61 KB
/
staged-quote.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
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
/**
* Code generated by [commercetools RMF-Codegen](https://github.com/commercetools/rmf-codegen). DO NOT EDIT.
* Please don't change this file manually but run `rmf-codegen generate raml_file_path -o output_path -t typescript_client` to update it.
* For more information about the commercetools platform APIs, visit https://docs.commercetools.com/.
*/
import { BusinessUnitKeyReference } from './business-unit.js'
import { CartReference } from './cart.js'
import { BaseResource, CreatedBy, LastModifiedBy } from './common.js'
import { CustomerReference } from './customer.js'
import { QuoteRequestReference, QuoteRequestResourceIdentifier } from './quote-request.js'
import { StateReference, StateResourceIdentifier } from './state.js'
import { CustomFields, CustomFieldsDraft, FieldContainer, TypeResourceIdentifier } from './type.js'
export interface StagedQuote extends BaseResource {
/**
* The unique ID of the StagedQuote.
*
*
*/
readonly id: string
/**
* Current version of the StagedQuote.
*
*
*/
readonly version: number
/**
* User-specific unique identifier of the staged quote.
*
*/
readonly key?: string
/**
* Date and time (UTC) the StagedQuote was initially created.
*
*
*/
readonly createdAt: string
/**
* Date and time (UTC) the StagedQuote was last updated.
*
*
*/
readonly lastModifiedAt: string
/**
* Present on resources created after 1 February 2019 except for [events not tracked](/client-logging#events-tracked).
*
*
*/
readonly lastModifiedBy?: LastModifiedBy
/**
* Present on resources created after 1 February 2019 except for [events not tracked](/client-logging#events-tracked).
*
*
*/
readonly createdBy?: CreatedBy
/**
* Predefined states tracking the status of the Staged Quote.
*
*
*/
readonly stagedQuoteState: StagedQuoteState
/**
* The [Buyer](/../api/quotes-overview#buyer) who requested the Quote.
*
*
*/
readonly customer?: CustomerReference
/**
* Quote Request related to the Staged Quote.
*
*
*/
readonly quoteRequest: QuoteRequestReference
/**
* [Cart](ctp:api:type:Cart) containing the offered items. May contain either [DirectDiscounts](ctp:api:type:DirectDiscount) or [CartDiscounts](ctp:api:type:CartDiscount).
*
*
*/
readonly quotationCart: CartReference
/**
* Expiration date for the Quote.
*
*
*/
readonly validTo?: string
/**
* Message from the [Seller](/../api/quotes-overview#seller) included in the offer.
*
*
*/
readonly sellerComment?: string
/**
* Custom Fields of the Staged Quote.
*
*/
readonly custom?: CustomFields
/**
* [State](ctp:api:type:State) of the Staged Quote.
* This reference can point to a State in a custom workflow.
*
*
*/
readonly state?: StateReference
/**
* The Purchase Order Number is typically set by the [Buyer](/quotes-overview#buyer) on a [QuoteRequest](ctp:api:type:QuoteRequest) to
* track the purchase order during the [quote and order flow](/../api/quotes-overview#intended-workflow).
*
*
*/
readonly purchaseOrderNumber?: string
/**
* The [BusinessUnit](ctp:api:type:BusinessUnit) for the Staged Quote.
*
*
*/
readonly businessUnit?: BusinessUnitKeyReference
}
export interface StagedQuoteDraft {
/**
* QuoteRequest from which the StagedQuote is created.
*
*
*/
readonly quoteRequest: QuoteRequestResourceIdentifier
/**
* Current version of the QuoteRequest.
*
*
*/
readonly quoteRequestVersion: number
/**
* If `true`, the `quoteRequestState` of the referenced [QuoteRequest](ctp:api:type:QuoteRequest) will be set to `Accepted`.
*
*
*/
readonly quoteRequestStateToAccepted?: boolean
/**
* User-defined unique identifier for the StagedQuote.
*
*
*/
readonly key?: string
/**
* [Custom Fields](/../api/projects/custom-fields) to be added to the StagedQuote.
*
* - If specified, the Custom Fields are merged with the Custom Fields on the referenced [QuoteRequest](ctp:api:type:QuoteRequest) and added to the StagedQuote.
* - If empty, the Custom Fields on the referenced [QuoteRequest](ctp:api:type:QuoteRequest) are added to the StagedQuote automatically.
*
*
*/
readonly custom?: CustomFieldsDraft
/**
* [State](ctp:api:type:State) of the Staged Quote.
* This reference can point to a State in a custom workflow.
*
*
*/
readonly state?: StateReference
}
/**
* [PagedQueryResult](/../api/general-concepts#pagedqueryresult) with results containing an array of [StagedQuote](ctp:api:type:StagedQuote).
*
*/
export interface StagedQuotePagedQueryResponse {
/**
* Number of [results requested](/../api/general-concepts#limit).
*
*
*/
readonly limit: number
/**
* Number of [elements skipped](/../api/general-concepts#offset).
*
*
*/
readonly offset: number
/**
* Actual number of results returned.
*
*
*/
readonly count: number
/**
* Total number of results matching the query.
* This number is an estimation that is not [strongly consistent](/../api/general-concepts#strong-consistency).
* This field is returned by default.
* For improved performance, calculating this field can be deactivated by using the query parameter `withTotal=false`.
* When the results are filtered with a [Query Predicate](/../api/predicates/query), `total` is subject to a [limit](/../api/limits#queries).
*
*
*/
readonly total?: number
/**
* Staged Quotes matching the query.
*
*
*/
readonly results: StagedQuote[]
}
/**
* [Reference](ctp:api:type:Reference) to a [StagedQuote](ctp:api:type:StagedQuote).
*
*/
export interface StagedQuoteReference {
readonly typeId: 'staged-quote'
/**
* Unique ID of the referenced resource.
*
*
*/
readonly id: string
/**
* Contains the representation of the expanded StagedQuote.
* Only present in responses to requests with [Reference Expansion](/../api/general-concepts#reference-expansion) for StagedQuote.
*
*
*/
readonly obj?: StagedQuote
}
/**
* [ResourceIdentifier](ctp:api:type:ResourceIdentifier) to a [StagedQuote](ctp:api:type:StagedQuote).
*
*/
export interface StagedQuoteResourceIdentifier {
readonly typeId: 'staged-quote'
/**
* Unique identifier of the referenced resource. Required if `key` is absent.
*
*
*/
readonly id?: string
/**
* User-defined unique identifier of the referenced resource. Required if `id` is absent.
*
*
*/
readonly key?: string
}
/**
* Predefined states tracking the status of the Staged Quote.
*
*/
export type StagedQuoteState = 'Closed' | 'InProgress' | 'Sent' | string
export interface StagedQuoteUpdate {
/**
* Expected version of the [StagedQuote](ctp:api:type:StagedQuote) to which the changes should be applied.
* If the expected version does not match the actual version, a [409 Conflict](/../api/errors#409-conflict) error will be returned.
*
*
*/
readonly version: number
/**
* Update actions to be performed on the [StagedQuote](ctp:api:type:StagedQuote).
*
*
*/
readonly actions: StagedQuoteUpdateAction[]
}
export type StagedQuoteUpdateAction =
| StagedQuoteChangeStagedQuoteStateAction
| StagedQuoteSetCustomFieldAction
| StagedQuoteSetCustomTypeAction
| StagedQuoteSetSellerCommentAction
| StagedQuoteSetValidToAction
| StagedQuoteTransitionStateAction
export interface StagedQuoteChangeStagedQuoteStateAction {
readonly action: 'changeStagedQuoteState'
/**
* New state to be set for the Staged Quote.
*
*/
readonly stagedQuoteState: StagedQuoteState
}
export interface StagedQuoteSetCustomFieldAction {
readonly action: 'setCustomField'
/**
* Name of the [Custom Field](/../api/projects/custom-fields).
*
*
*/
readonly name: string
/**
* If `value` is absent or `null`, this field will be removed if it exists.
* Removing a field that does not exist returns an [InvalidOperation](ctp:api:type:InvalidOperationError) error.
* If `value` is provided, it is set for the field defined by `name`.
*
*
*/
readonly value?: any
}
export interface StagedQuoteSetCustomTypeAction {
readonly action: 'setCustomType'
/**
* Defines the [Type](ctp:api:type:Type) that extends the StagedQuote with [Custom Fields](/../api/projects/custom-fields).
* If absent, any existing Type and Custom Fields are removed from the StagedQuote.
*
*
*/
readonly type?: TypeResourceIdentifier
/**
* Sets the [Custom Fields](/../api/projects/custom-fields) fields for the StagedQuote.
*
*
*/
readonly fields?: FieldContainer
}
export interface StagedQuoteSetSellerCommentAction {
readonly action: 'setSellerComment'
/**
* If `sellerComment` is absent or `null`, this field will be removed if it exists.
*
*
*/
readonly sellerComment?: string
}
export interface StagedQuoteSetValidToAction {
readonly action: 'setValidTo'
/**
* If `validTo` is absent or `null`, this field will be removed if it exists.
*
*
*/
readonly validTo?: string
}
/**
* If the existing [State](ctp:api:type:State) has set `transitions`, there must be a direct transition to the new State. If `transitions` is not set, no validation is performed. This update action produces the [Staged Quote State Transition](ctp:api:type:StagedQuoteStateTransitionMessage) Message.
*
*/
export interface StagedQuoteTransitionStateAction {
readonly action: 'transitionState'
/**
* Value to set.
* If there is no State yet, the new State must be an initial State.
*
*
*/
readonly state: StateResourceIdentifier
/**
* Switch validations on or off.
*
*
*/
readonly force?: boolean
}