repzo 1.0.154 → 1.0.156
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.
- package/changelog.md +1 -0
- package/lib/index.d.ts +18 -0
- package/lib/index.js +38 -0
- package/lib/types/index.d.ts +462 -198
- package/lib/types/index.js +2 -1
- package/package.json +2 -2
- package/src/index.ts +4890 -0
- package/src/oas/activity-ai-sales-order.yaml +623 -0
- package/src/oas/activity-feedback-v2.yaml +753 -0
- package/src/oas/activity-feedback.yaml +645 -0
- package/src/oas/activity-storecheck.yaml +379 -0
- package/src/oas/adjust-account.yaml +241 -0
- package/src/oas/adjust-inventory.yaml +133 -0
- package/src/oas/approval-request.yaml +211 -0
- package/src/oas/approvals.yaml +176 -0
- package/src/oas/asset-part-receival.yaml +591 -0
- package/src/oas/asset-part-transfer.yaml +618 -0
- package/src/oas/asset-part-type.yaml +383 -0
- package/src/oas/asset-part-unit.yaml +722 -0
- package/src/oas/asset-part.yaml +485 -0
- package/src/oas/asset-type.yaml +180 -0
- package/src/oas/asset-unit.yaml +705 -0
- package/src/oas/asset.yaml +204 -0
- package/src/oas/banks.yaml +168 -0
- package/src/oas/bankslists.yaml +168 -0
- package/src/oas/brand.yaml +246 -0
- package/src/oas/category.yaml +285 -0
- package/src/oas/checks.yaml +247 -0
- package/src/oas/client-channel.yaml +480 -0
- package/src/oas/client-contact.yaml +665 -0
- package/src/oas/client-location.yaml +687 -0
- package/src/oas/client.yaml +669 -0
- package/src/oas/contract-installment.yaml +740 -0
- package/src/oas/contract.yaml +210 -0
- package/src/oas/custom-list-item.yaml +168 -0
- package/src/oas/custom-list.yaml +168 -0
- package/src/oas/custom-status.yaml +168 -0
- package/src/oas/day.yaml +246 -0
- package/src/oas/feedback-options.yaml +802 -0
- package/src/oas/fullinvoices.yaml +584 -0
- package/src/oas/integration-action-log.yaml +361 -0
- package/src/oas/integration-app.yaml +303 -0
- package/src/oas/integration-command-log.yaml +381 -0
- package/src/oas/inventory-adjustment-reason.yaml +165 -0
- package/src/oas/inventory.yaml +64 -0
- package/src/oas/mail-unsubscribe.yaml +463 -0
- package/src/oas/measureunit-family.yaml +354 -0
- package/src/oas/measureunit.yaml +366 -0
- package/src/oas/media-storage.yaml +329 -0
- package/src/oas/media.yaml +472 -0
- package/src/oas/msl-products.yaml +180 -0
- package/src/oas/msl.yaml +186 -0
- package/src/oas/ocr-invoice-job-group.yaml +528 -0
- package/src/oas/ocr-invoice-job-page.yaml +602 -0
- package/src/oas/ocr-invoice-job-template.yaml +628 -0
- package/src/oas/ocr-invoice-job.yaml +603 -0
- package/src/oas/patch-action.yaml +421 -0
- package/src/oas/payment-terms.yaml +235 -0
- package/src/oas/payments.yaml +536 -0
- package/src/oas/pricelist-item.yaml +369 -0
- package/src/oas/pricelist.yaml +287 -0
- package/src/oas/product-group.yaml +278 -0
- package/src/oas/product-modifiers-group.yaml +524 -0
- package/src/oas/product.yaml +578 -0
- package/src/oas/proforma.yaml +180 -0
- package/src/oas/quick-convert-to-pdf.yaml +95 -0
- package/src/oas/receiving-material.yaml +336 -0
- package/src/oas/refund.yaml +281 -0
- package/src/oas/rep-balance-summary.yaml +135 -0
- package/src/oas/rep.yaml +1824 -0
- package/src/oas/return-asset-part-unit.yaml +573 -0
- package/src/oas/return-reason.yaml +286 -0
- package/src/oas/route.yaml +337 -0
- package/src/oas/safe-invoice-serial-counter.yaml +525 -0
- package/src/oas/settings.yaml +123 -0
- package/src/oas/settlement.yaml +505 -0
- package/src/oas/speciality.yaml +447 -0
- package/src/oas/store-asset-part-unit.yaml +658 -0
- package/src/oas/storecheck-template.yaml +415 -0
- package/src/oas/subcategory.yaml +355 -0
- package/src/oas/supplier.yaml +183 -0
- package/src/oas/svix-integration.yaml +335 -0
- package/src/oas/tag.yaml +272 -0
- package/src/oas/tax.yaml +303 -0
- package/src/oas/team.yaml +268 -0
- package/src/oas/transfer.yaml +347 -0
- package/src/oas/update-integration-meta.yaml +387 -0
- package/src/oas/variant.yaml +569 -0
- package/src/oas/visit.yaml +174 -0
- package/src/oas/warehouse.yaml +311 -0
- package/src/oas/workorder-category.yaml +751 -0
- package/src/oas/workorder-portal-link.yaml +811 -0
- package/src/oas/workorder-portal.yaml +650 -0
- package/src/oas/workorder-request.yaml +193 -0
- package/src/oas/workorder.yaml +204 -0
- package/src/types/index.ts +1175 -223
|
@@ -0,0 +1,650 @@
|
|
|
1
|
+
openapi: 3.0.0
|
|
2
|
+
info:
|
|
3
|
+
title: Workorder Portal API
|
|
4
|
+
description: API for managing workorder portal operations
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
servers:
|
|
7
|
+
- url: https://api.repzo.me/v1
|
|
8
|
+
description: Production server
|
|
9
|
+
security:
|
|
10
|
+
- ApiKeyAuth: []
|
|
11
|
+
tags:
|
|
12
|
+
- name: Workorder Portal
|
|
13
|
+
description: Workorder portal management operations
|
|
14
|
+
paths:
|
|
15
|
+
/workorder-portal:
|
|
16
|
+
get:
|
|
17
|
+
tags:
|
|
18
|
+
- Workorder Portal
|
|
19
|
+
summary: Get workorder portal entries
|
|
20
|
+
description: Retrieve workorder portal entries with optional filtering and pagination
|
|
21
|
+
parameters:
|
|
22
|
+
- name: page
|
|
23
|
+
in: query
|
|
24
|
+
description: Page number for pagination
|
|
25
|
+
required: false
|
|
26
|
+
schema:
|
|
27
|
+
type: integer
|
|
28
|
+
minimum: 1
|
|
29
|
+
default: 1
|
|
30
|
+
- name: per_page
|
|
31
|
+
in: query
|
|
32
|
+
description: Number of items per page
|
|
33
|
+
required: false
|
|
34
|
+
schema:
|
|
35
|
+
type: integer
|
|
36
|
+
minimum: 1
|
|
37
|
+
maximum: 100
|
|
38
|
+
default: 25
|
|
39
|
+
- name: sort
|
|
40
|
+
in: query
|
|
41
|
+
description: Sort field
|
|
42
|
+
required: false
|
|
43
|
+
schema:
|
|
44
|
+
type: string
|
|
45
|
+
- name: company_namespace
|
|
46
|
+
in: query
|
|
47
|
+
description: Company namespace for filtering
|
|
48
|
+
required: false
|
|
49
|
+
schema:
|
|
50
|
+
type: array
|
|
51
|
+
items:
|
|
52
|
+
type: string
|
|
53
|
+
- name: status
|
|
54
|
+
in: query
|
|
55
|
+
description: Filter by status
|
|
56
|
+
required: false
|
|
57
|
+
schema:
|
|
58
|
+
type: string
|
|
59
|
+
enum: ["pending", "in_progress", "completed", "cancelled"]
|
|
60
|
+
- name: workorder
|
|
61
|
+
in: query
|
|
62
|
+
description: Filter by workorder ID
|
|
63
|
+
required: false
|
|
64
|
+
schema:
|
|
65
|
+
type: string
|
|
66
|
+
- name: client
|
|
67
|
+
in: query
|
|
68
|
+
description: Filter by client ID
|
|
69
|
+
required: false
|
|
70
|
+
schema:
|
|
71
|
+
type: string
|
|
72
|
+
- name: _id
|
|
73
|
+
in: query
|
|
74
|
+
description: Filter by ID
|
|
75
|
+
required: false
|
|
76
|
+
schema:
|
|
77
|
+
type: array
|
|
78
|
+
items:
|
|
79
|
+
type: string
|
|
80
|
+
responses:
|
|
81
|
+
"200":
|
|
82
|
+
description: Successful response
|
|
83
|
+
content:
|
|
84
|
+
application/json:
|
|
85
|
+
schema:
|
|
86
|
+
type: object
|
|
87
|
+
properties:
|
|
88
|
+
success:
|
|
89
|
+
type: boolean
|
|
90
|
+
example: true
|
|
91
|
+
data:
|
|
92
|
+
type: array
|
|
93
|
+
items:
|
|
94
|
+
$ref: "#/components/schemas/WorkorderPortal"
|
|
95
|
+
paging:
|
|
96
|
+
$ref: "#/components/schemas/PagingInfo"
|
|
97
|
+
"400":
|
|
98
|
+
$ref: "#/components/responses/BadRequest"
|
|
99
|
+
"401":
|
|
100
|
+
$ref: "#/components/responses/Unauthorized"
|
|
101
|
+
"403":
|
|
102
|
+
$ref: "#/components/responses/Forbidden"
|
|
103
|
+
"500":
|
|
104
|
+
$ref: "#/components/responses/InternalServerError"
|
|
105
|
+
post:
|
|
106
|
+
tags:
|
|
107
|
+
- Workorder Portal
|
|
108
|
+
summary: Create a new workorder portal entry
|
|
109
|
+
description: Create a new workorder portal entry
|
|
110
|
+
requestBody:
|
|
111
|
+
required: true
|
|
112
|
+
content:
|
|
113
|
+
application/json:
|
|
114
|
+
schema:
|
|
115
|
+
$ref: "#/components/schemas/CreateWorkorderPortalRequest"
|
|
116
|
+
responses:
|
|
117
|
+
"201":
|
|
118
|
+
description: Workorder portal entry created successfully
|
|
119
|
+
content:
|
|
120
|
+
application/json:
|
|
121
|
+
schema:
|
|
122
|
+
type: object
|
|
123
|
+
properties:
|
|
124
|
+
success:
|
|
125
|
+
type: boolean
|
|
126
|
+
example: true
|
|
127
|
+
data:
|
|
128
|
+
$ref: "#/components/schemas/WorkorderPortal"
|
|
129
|
+
"400":
|
|
130
|
+
$ref: "#/components/responses/BadRequest"
|
|
131
|
+
"401":
|
|
132
|
+
$ref: "#/components/responses/Unauthorized"
|
|
133
|
+
"403":
|
|
134
|
+
$ref: "#/components/responses/Forbidden"
|
|
135
|
+
"422":
|
|
136
|
+
$ref: "#/components/responses/ValidationError"
|
|
137
|
+
"500":
|
|
138
|
+
$ref: "#/components/responses/InternalServerError"
|
|
139
|
+
/workorder-portal/{id}:
|
|
140
|
+
get:
|
|
141
|
+
tags:
|
|
142
|
+
- Workorder Portal
|
|
143
|
+
summary: Get workorder portal entry by ID
|
|
144
|
+
description: Retrieve a specific workorder portal entry by its ID
|
|
145
|
+
parameters:
|
|
146
|
+
- name: id
|
|
147
|
+
in: path
|
|
148
|
+
required: true
|
|
149
|
+
description: Workorder portal entry ID
|
|
150
|
+
schema:
|
|
151
|
+
type: string
|
|
152
|
+
responses:
|
|
153
|
+
"200":
|
|
154
|
+
description: Successful response
|
|
155
|
+
content:
|
|
156
|
+
application/json:
|
|
157
|
+
schema:
|
|
158
|
+
type: object
|
|
159
|
+
properties:
|
|
160
|
+
success:
|
|
161
|
+
type: boolean
|
|
162
|
+
example: true
|
|
163
|
+
data:
|
|
164
|
+
$ref: "#/components/schemas/WorkorderPortal"
|
|
165
|
+
"400":
|
|
166
|
+
$ref: "#/components/responses/BadRequest"
|
|
167
|
+
"401":
|
|
168
|
+
$ref: "#/components/responses/Unauthorized"
|
|
169
|
+
"403":
|
|
170
|
+
$ref: "#/components/responses/Forbidden"
|
|
171
|
+
"404":
|
|
172
|
+
$ref: "#/components/responses/NotFound"
|
|
173
|
+
"500":
|
|
174
|
+
$ref: "#/components/responses/InternalServerError"
|
|
175
|
+
patch:
|
|
176
|
+
tags:
|
|
177
|
+
- Workorder Portal
|
|
178
|
+
summary: Update workorder portal entry
|
|
179
|
+
description: Update an existing workorder portal entry
|
|
180
|
+
parameters:
|
|
181
|
+
- name: id
|
|
182
|
+
in: path
|
|
183
|
+
required: true
|
|
184
|
+
description: Workorder portal entry ID
|
|
185
|
+
schema:
|
|
186
|
+
type: string
|
|
187
|
+
requestBody:
|
|
188
|
+
required: true
|
|
189
|
+
content:
|
|
190
|
+
application/json:
|
|
191
|
+
schema:
|
|
192
|
+
$ref: "#/components/schemas/UpdateWorkorderPortalRequest"
|
|
193
|
+
responses:
|
|
194
|
+
"200":
|
|
195
|
+
description: Workorder portal entry updated successfully
|
|
196
|
+
content:
|
|
197
|
+
application/json:
|
|
198
|
+
schema:
|
|
199
|
+
type: object
|
|
200
|
+
properties:
|
|
201
|
+
success:
|
|
202
|
+
type: boolean
|
|
203
|
+
example: true
|
|
204
|
+
data:
|
|
205
|
+
$ref: "#/components/schemas/WorkorderPortal"
|
|
206
|
+
"400":
|
|
207
|
+
$ref: "#/components/responses/BadRequest"
|
|
208
|
+
"401":
|
|
209
|
+
$ref: "#/components/responses/Unauthorized"
|
|
210
|
+
"403":
|
|
211
|
+
$ref: "#/components/responses/Forbidden"
|
|
212
|
+
"404":
|
|
213
|
+
$ref: "#/components/responses/NotFound"
|
|
214
|
+
"422":
|
|
215
|
+
$ref: "#/components/responses/ValidationError"
|
|
216
|
+
"500":
|
|
217
|
+
$ref: "#/components/responses/InternalServerError"
|
|
218
|
+
delete:
|
|
219
|
+
tags:
|
|
220
|
+
- Workorder Portal
|
|
221
|
+
summary: Delete workorder portal entry
|
|
222
|
+
description: Delete a workorder portal entry by ID
|
|
223
|
+
parameters:
|
|
224
|
+
- name: id
|
|
225
|
+
in: path
|
|
226
|
+
required: true
|
|
227
|
+
description: Workorder portal entry ID
|
|
228
|
+
schema:
|
|
229
|
+
type: string
|
|
230
|
+
responses:
|
|
231
|
+
"200":
|
|
232
|
+
description: Workorder portal entry deleted successfully
|
|
233
|
+
content:
|
|
234
|
+
application/json:
|
|
235
|
+
schema:
|
|
236
|
+
type: object
|
|
237
|
+
properties:
|
|
238
|
+
success:
|
|
239
|
+
type: boolean
|
|
240
|
+
example: true
|
|
241
|
+
"400":
|
|
242
|
+
$ref: "#/components/responses/BadRequest"
|
|
243
|
+
"401":
|
|
244
|
+
$ref: "#/components/responses/Unauthorized"
|
|
245
|
+
"403":
|
|
246
|
+
$ref: "#/components/responses/Forbidden"
|
|
247
|
+
"404":
|
|
248
|
+
$ref: "#/components/responses/NotFound"
|
|
249
|
+
"500":
|
|
250
|
+
$ref: "#/components/responses/InternalServerError"
|
|
251
|
+
/workorder-portal/{id}/status:
|
|
252
|
+
patch:
|
|
253
|
+
tags:
|
|
254
|
+
- Workorder Portal
|
|
255
|
+
summary: Update workorder portal status
|
|
256
|
+
description: Update the status of a workorder portal entry
|
|
257
|
+
parameters:
|
|
258
|
+
- name: id
|
|
259
|
+
in: path
|
|
260
|
+
required: true
|
|
261
|
+
description: Workorder portal entry ID
|
|
262
|
+
schema:
|
|
263
|
+
type: string
|
|
264
|
+
requestBody:
|
|
265
|
+
required: true
|
|
266
|
+
content:
|
|
267
|
+
application/json:
|
|
268
|
+
schema:
|
|
269
|
+
type: object
|
|
270
|
+
properties:
|
|
271
|
+
status:
|
|
272
|
+
type: string
|
|
273
|
+
enum: ["pending", "in_progress", "completed", "cancelled"]
|
|
274
|
+
description: New status
|
|
275
|
+
notes:
|
|
276
|
+
type: string
|
|
277
|
+
description: Status update notes
|
|
278
|
+
required:
|
|
279
|
+
- status
|
|
280
|
+
responses:
|
|
281
|
+
"200":
|
|
282
|
+
description: Status updated successfully
|
|
283
|
+
content:
|
|
284
|
+
application/json:
|
|
285
|
+
schema:
|
|
286
|
+
type: object
|
|
287
|
+
properties:
|
|
288
|
+
success:
|
|
289
|
+
type: boolean
|
|
290
|
+
example: true
|
|
291
|
+
data:
|
|
292
|
+
$ref: "#/components/schemas/WorkorderPortal"
|
|
293
|
+
"400":
|
|
294
|
+
$ref: "#/components/responses/BadRequest"
|
|
295
|
+
"401":
|
|
296
|
+
$ref: "#/components/responses/Unauthorized"
|
|
297
|
+
"403":
|
|
298
|
+
$ref: "#/components/responses/Forbidden"
|
|
299
|
+
"404":
|
|
300
|
+
$ref: "#/components/responses/NotFound"
|
|
301
|
+
"500":
|
|
302
|
+
$ref: "#/components/responses/InternalServerError"
|
|
303
|
+
components:
|
|
304
|
+
securitySchemes:
|
|
305
|
+
ApiKeyAuth:
|
|
306
|
+
type: apiKey
|
|
307
|
+
in: header
|
|
308
|
+
name: Authorization
|
|
309
|
+
description: "Use format: Bearer {api_key}"
|
|
310
|
+
schemas:
|
|
311
|
+
WorkorderPortal:
|
|
312
|
+
type: object
|
|
313
|
+
properties:
|
|
314
|
+
_id:
|
|
315
|
+
type: string
|
|
316
|
+
description: Unique identifier
|
|
317
|
+
example: "507f1f77bcf86cd799439011"
|
|
318
|
+
workorder:
|
|
319
|
+
type: string
|
|
320
|
+
description: Workorder ID reference
|
|
321
|
+
example: "507f1f77bcf86cd799439012"
|
|
322
|
+
client:
|
|
323
|
+
type: string
|
|
324
|
+
description: Client ID reference
|
|
325
|
+
example: "507f1f77bcf86cd799439013"
|
|
326
|
+
portal_access_code:
|
|
327
|
+
type: string
|
|
328
|
+
description: Unique access code for portal
|
|
329
|
+
example: "WOP-2024-001"
|
|
330
|
+
status:
|
|
331
|
+
type: string
|
|
332
|
+
description: Current status
|
|
333
|
+
enum: ["pending", "in_progress", "completed", "cancelled"]
|
|
334
|
+
example: "pending"
|
|
335
|
+
access_level:
|
|
336
|
+
type: string
|
|
337
|
+
description: Level of access granted
|
|
338
|
+
enum: ["view_only", "comment", "full_access"]
|
|
339
|
+
example: "comment"
|
|
340
|
+
allowed_actions:
|
|
341
|
+
type: array
|
|
342
|
+
items:
|
|
343
|
+
type: string
|
|
344
|
+
enum: ["view", "comment", "upload_files", "approve", "reject"]
|
|
345
|
+
description: Actions allowed for this portal access
|
|
346
|
+
expiry_date:
|
|
347
|
+
type: string
|
|
348
|
+
format: date-time
|
|
349
|
+
description: When portal access expires
|
|
350
|
+
last_accessed:
|
|
351
|
+
type: string
|
|
352
|
+
format: date-time
|
|
353
|
+
description: Last time portal was accessed
|
|
354
|
+
access_count:
|
|
355
|
+
type: integer
|
|
356
|
+
description: Number of times portal was accessed
|
|
357
|
+
example: 5
|
|
358
|
+
notifications:
|
|
359
|
+
type: object
|
|
360
|
+
properties:
|
|
361
|
+
email_enabled:
|
|
362
|
+
type: boolean
|
|
363
|
+
description: Whether email notifications are enabled
|
|
364
|
+
sms_enabled:
|
|
365
|
+
type: boolean
|
|
366
|
+
description: Whether SMS notifications are enabled
|
|
367
|
+
notification_events:
|
|
368
|
+
type: array
|
|
369
|
+
items:
|
|
370
|
+
type: string
|
|
371
|
+
enum: ["status_change", "new_comment", "deadline_approaching"]
|
|
372
|
+
portal_settings:
|
|
373
|
+
type: object
|
|
374
|
+
properties:
|
|
375
|
+
show_progress:
|
|
376
|
+
type: boolean
|
|
377
|
+
description: Whether to show progress information
|
|
378
|
+
allow_comments:
|
|
379
|
+
type: boolean
|
|
380
|
+
description: Whether commenting is allowed
|
|
381
|
+
require_authentication:
|
|
382
|
+
type: boolean
|
|
383
|
+
description: Whether authentication is required
|
|
384
|
+
custom_branding:
|
|
385
|
+
type: object
|
|
386
|
+
properties:
|
|
387
|
+
logo_url:
|
|
388
|
+
type: string
|
|
389
|
+
description: URL to custom logo
|
|
390
|
+
brand_color:
|
|
391
|
+
type: string
|
|
392
|
+
description: Brand color hex code
|
|
393
|
+
example: "#FF5733"
|
|
394
|
+
company_name:
|
|
395
|
+
type: string
|
|
396
|
+
description: Company name to display
|
|
397
|
+
company_namespace:
|
|
398
|
+
type: array
|
|
399
|
+
items:
|
|
400
|
+
type: string
|
|
401
|
+
description: Company namespace
|
|
402
|
+
disabled:
|
|
403
|
+
type: boolean
|
|
404
|
+
description: Whether portal access is disabled
|
|
405
|
+
example: false
|
|
406
|
+
createdAt:
|
|
407
|
+
type: string
|
|
408
|
+
format: date-time
|
|
409
|
+
description: Creation timestamp
|
|
410
|
+
modifiedAt:
|
|
411
|
+
type: string
|
|
412
|
+
format: date-time
|
|
413
|
+
description: Last modification timestamp
|
|
414
|
+
SVClient:
|
|
415
|
+
type: integer
|
|
416
|
+
description: Client version
|
|
417
|
+
__v:
|
|
418
|
+
type: integer
|
|
419
|
+
description: Document version
|
|
420
|
+
required:
|
|
421
|
+
- workorder
|
|
422
|
+
- client
|
|
423
|
+
- portal_access_code
|
|
424
|
+
- status
|
|
425
|
+
CreateWorkorderPortalRequest:
|
|
426
|
+
type: object
|
|
427
|
+
properties:
|
|
428
|
+
workorder:
|
|
429
|
+
type: string
|
|
430
|
+
description: Workorder ID reference
|
|
431
|
+
example: "507f1f77bcf86cd799439012"
|
|
432
|
+
client:
|
|
433
|
+
type: string
|
|
434
|
+
description: Client ID reference
|
|
435
|
+
example: "507f1f77bcf86cd799439013"
|
|
436
|
+
access_level:
|
|
437
|
+
type: string
|
|
438
|
+
description: Level of access granted
|
|
439
|
+
enum: ["view_only", "comment", "full_access"]
|
|
440
|
+
default: "view_only"
|
|
441
|
+
allowed_actions:
|
|
442
|
+
type: array
|
|
443
|
+
items:
|
|
444
|
+
type: string
|
|
445
|
+
enum: ["view", "comment", "upload_files", "approve", "reject"]
|
|
446
|
+
description: Actions allowed for this portal access
|
|
447
|
+
default: ["view"]
|
|
448
|
+
expiry_date:
|
|
449
|
+
type: string
|
|
450
|
+
format: date-time
|
|
451
|
+
description: When portal access expires
|
|
452
|
+
notifications:
|
|
453
|
+
type: object
|
|
454
|
+
properties:
|
|
455
|
+
email_enabled:
|
|
456
|
+
type: boolean
|
|
457
|
+
default: true
|
|
458
|
+
sms_enabled:
|
|
459
|
+
type: boolean
|
|
460
|
+
default: false
|
|
461
|
+
notification_events:
|
|
462
|
+
type: array
|
|
463
|
+
items:
|
|
464
|
+
type: string
|
|
465
|
+
enum: ["status_change", "new_comment", "deadline_approaching"]
|
|
466
|
+
portal_settings:
|
|
467
|
+
type: object
|
|
468
|
+
properties:
|
|
469
|
+
show_progress:
|
|
470
|
+
type: boolean
|
|
471
|
+
default: true
|
|
472
|
+
allow_comments:
|
|
473
|
+
type: boolean
|
|
474
|
+
default: true
|
|
475
|
+
require_authentication:
|
|
476
|
+
type: boolean
|
|
477
|
+
default: false
|
|
478
|
+
custom_branding:
|
|
479
|
+
type: object
|
|
480
|
+
properties:
|
|
481
|
+
logo_url:
|
|
482
|
+
type: string
|
|
483
|
+
brand_color:
|
|
484
|
+
type: string
|
|
485
|
+
company_name:
|
|
486
|
+
type: string
|
|
487
|
+
company_namespace:
|
|
488
|
+
type: array
|
|
489
|
+
items:
|
|
490
|
+
type: string
|
|
491
|
+
description: Company namespace
|
|
492
|
+
disabled:
|
|
493
|
+
type: boolean
|
|
494
|
+
description: Whether portal access is disabled
|
|
495
|
+
default: false
|
|
496
|
+
required:
|
|
497
|
+
- workorder
|
|
498
|
+
- client
|
|
499
|
+
UpdateWorkorderPortalRequest:
|
|
500
|
+
type: object
|
|
501
|
+
properties:
|
|
502
|
+
status:
|
|
503
|
+
type: string
|
|
504
|
+
description: Current status
|
|
505
|
+
enum: ["pending", "in_progress", "completed", "cancelled"]
|
|
506
|
+
access_level:
|
|
507
|
+
type: string
|
|
508
|
+
description: Level of access granted
|
|
509
|
+
enum: ["view_only", "comment", "full_access"]
|
|
510
|
+
allowed_actions:
|
|
511
|
+
type: array
|
|
512
|
+
items:
|
|
513
|
+
type: string
|
|
514
|
+
enum: ["view", "comment", "upload_files", "approve", "reject"]
|
|
515
|
+
expiry_date:
|
|
516
|
+
type: string
|
|
517
|
+
format: date-time
|
|
518
|
+
description: When portal access expires
|
|
519
|
+
notifications:
|
|
520
|
+
type: object
|
|
521
|
+
properties:
|
|
522
|
+
email_enabled:
|
|
523
|
+
type: boolean
|
|
524
|
+
sms_enabled:
|
|
525
|
+
type: boolean
|
|
526
|
+
notification_events:
|
|
527
|
+
type: array
|
|
528
|
+
items:
|
|
529
|
+
type: string
|
|
530
|
+
enum: ["status_change", "new_comment", "deadline_approaching"]
|
|
531
|
+
portal_settings:
|
|
532
|
+
type: object
|
|
533
|
+
properties:
|
|
534
|
+
show_progress:
|
|
535
|
+
type: boolean
|
|
536
|
+
allow_comments:
|
|
537
|
+
type: boolean
|
|
538
|
+
require_authentication:
|
|
539
|
+
type: boolean
|
|
540
|
+
custom_branding:
|
|
541
|
+
type: object
|
|
542
|
+
properties:
|
|
543
|
+
logo_url:
|
|
544
|
+
type: string
|
|
545
|
+
brand_color:
|
|
546
|
+
type: string
|
|
547
|
+
company_name:
|
|
548
|
+
type: string
|
|
549
|
+
company_namespace:
|
|
550
|
+
type: array
|
|
551
|
+
items:
|
|
552
|
+
type: string
|
|
553
|
+
description: Company namespace
|
|
554
|
+
disabled:
|
|
555
|
+
type: boolean
|
|
556
|
+
description: Whether portal access is disabled
|
|
557
|
+
PagingInfo:
|
|
558
|
+
type: object
|
|
559
|
+
properties:
|
|
560
|
+
total:
|
|
561
|
+
type: integer
|
|
562
|
+
description: Total number of items
|
|
563
|
+
page:
|
|
564
|
+
type: integer
|
|
565
|
+
description: Current page number
|
|
566
|
+
per_page:
|
|
567
|
+
type: integer
|
|
568
|
+
description: Items per page
|
|
569
|
+
pages:
|
|
570
|
+
type: integer
|
|
571
|
+
description: Total number of pages
|
|
572
|
+
responses:
|
|
573
|
+
BadRequest:
|
|
574
|
+
description: Bad request
|
|
575
|
+
content:
|
|
576
|
+
application/json:
|
|
577
|
+
schema:
|
|
578
|
+
type: object
|
|
579
|
+
properties:
|
|
580
|
+
success:
|
|
581
|
+
type: boolean
|
|
582
|
+
example: false
|
|
583
|
+
error:
|
|
584
|
+
type: string
|
|
585
|
+
example: "Invalid request parameters"
|
|
586
|
+
Unauthorized:
|
|
587
|
+
description: Unauthorized
|
|
588
|
+
content:
|
|
589
|
+
application/json:
|
|
590
|
+
schema:
|
|
591
|
+
type: object
|
|
592
|
+
properties:
|
|
593
|
+
success:
|
|
594
|
+
type: boolean
|
|
595
|
+
example: false
|
|
596
|
+
error:
|
|
597
|
+
type: string
|
|
598
|
+
example: "Authentication required"
|
|
599
|
+
Forbidden:
|
|
600
|
+
description: Forbidden
|
|
601
|
+
content:
|
|
602
|
+
application/json:
|
|
603
|
+
schema:
|
|
604
|
+
type: object
|
|
605
|
+
properties:
|
|
606
|
+
success:
|
|
607
|
+
type: boolean
|
|
608
|
+
example: false
|
|
609
|
+
error:
|
|
610
|
+
type: string
|
|
611
|
+
example: "Insufficient permissions"
|
|
612
|
+
NotFound:
|
|
613
|
+
description: Resource not found
|
|
614
|
+
content:
|
|
615
|
+
application/json:
|
|
616
|
+
schema:
|
|
617
|
+
type: object
|
|
618
|
+
properties:
|
|
619
|
+
success:
|
|
620
|
+
type: boolean
|
|
621
|
+
example: false
|
|
622
|
+
error:
|
|
623
|
+
type: string
|
|
624
|
+
example: "Resource not found"
|
|
625
|
+
ValidationError:
|
|
626
|
+
description: Validation error
|
|
627
|
+
content:
|
|
628
|
+
application/json:
|
|
629
|
+
schema:
|
|
630
|
+
type: object
|
|
631
|
+
properties:
|
|
632
|
+
success:
|
|
633
|
+
type: boolean
|
|
634
|
+
example: false
|
|
635
|
+
error:
|
|
636
|
+
type: string
|
|
637
|
+
example: "Validation failed"
|
|
638
|
+
InternalServerError:
|
|
639
|
+
description: Internal server error
|
|
640
|
+
content:
|
|
641
|
+
application/json:
|
|
642
|
+
schema:
|
|
643
|
+
type: object
|
|
644
|
+
properties:
|
|
645
|
+
success:
|
|
646
|
+
type: boolean
|
|
647
|
+
example: false
|
|
648
|
+
error:
|
|
649
|
+
type: string
|
|
650
|
+
example: "Internal server error"
|