repzo 1.0.155 → 1.0.157
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/lib/index.d.ts +1 -2
- package/lib/index.js +1 -1
- package/lib/types/index.d.ts +2 -2
- 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 +2 -1
|
@@ -0,0 +1,665 @@
|
|
|
1
|
+
openapi: 3.0.0
|
|
2
|
+
info:
|
|
3
|
+
title: Client Contact API
|
|
4
|
+
description: API for managing client contacts - individual contact persons associated with clients
|
|
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: Client Contact
|
|
13
|
+
description: Client contact management operations
|
|
14
|
+
paths:
|
|
15
|
+
/client-contact:
|
|
16
|
+
get:
|
|
17
|
+
tags:
|
|
18
|
+
- Client Contact
|
|
19
|
+
summary: Get all client contacts
|
|
20
|
+
description: Retrieve a list of all client contacts 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: _id
|
|
46
|
+
in: query
|
|
47
|
+
description: Filter by contact ID(s)
|
|
48
|
+
required: false
|
|
49
|
+
schema:
|
|
50
|
+
oneOf:
|
|
51
|
+
- type: string
|
|
52
|
+
- type: array
|
|
53
|
+
items:
|
|
54
|
+
type: string
|
|
55
|
+
- name: search
|
|
56
|
+
in: query
|
|
57
|
+
description: Search text for contact name
|
|
58
|
+
required: false
|
|
59
|
+
schema:
|
|
60
|
+
type: string
|
|
61
|
+
- name: name
|
|
62
|
+
in: query
|
|
63
|
+
description: Filter by contact name(s)
|
|
64
|
+
required: false
|
|
65
|
+
schema:
|
|
66
|
+
oneOf:
|
|
67
|
+
- type: string
|
|
68
|
+
- type: array
|
|
69
|
+
items:
|
|
70
|
+
type: string
|
|
71
|
+
- name: from_updatedAt
|
|
72
|
+
in: query
|
|
73
|
+
description: Filter contacts updated after this timestamp
|
|
74
|
+
required: false
|
|
75
|
+
schema:
|
|
76
|
+
type: integer
|
|
77
|
+
format: int64
|
|
78
|
+
- name: to_updatedAt
|
|
79
|
+
in: query
|
|
80
|
+
description: Filter contacts updated before this timestamp
|
|
81
|
+
required: false
|
|
82
|
+
schema:
|
|
83
|
+
type: integer
|
|
84
|
+
format: int64
|
|
85
|
+
- name: from__id
|
|
86
|
+
in: query
|
|
87
|
+
description: Filter contacts with ID greater than this value
|
|
88
|
+
required: false
|
|
89
|
+
schema:
|
|
90
|
+
type: string
|
|
91
|
+
- name: to__id
|
|
92
|
+
in: query
|
|
93
|
+
description: Filter contacts with ID less than this value
|
|
94
|
+
required: false
|
|
95
|
+
schema:
|
|
96
|
+
type: string
|
|
97
|
+
- name: sortBy
|
|
98
|
+
in: query
|
|
99
|
+
description: Advanced sorting options
|
|
100
|
+
required: false
|
|
101
|
+
schema:
|
|
102
|
+
type: array
|
|
103
|
+
items:
|
|
104
|
+
type: object
|
|
105
|
+
properties:
|
|
106
|
+
field:
|
|
107
|
+
type: string
|
|
108
|
+
enum: ["_id"]
|
|
109
|
+
type:
|
|
110
|
+
type: string
|
|
111
|
+
enum: ["asc", "desc"]
|
|
112
|
+
responses:
|
|
113
|
+
"200":
|
|
114
|
+
description: Successful response
|
|
115
|
+
content:
|
|
116
|
+
application/json:
|
|
117
|
+
schema:
|
|
118
|
+
type: object
|
|
119
|
+
properties:
|
|
120
|
+
success:
|
|
121
|
+
type: boolean
|
|
122
|
+
example: true
|
|
123
|
+
data:
|
|
124
|
+
type: array
|
|
125
|
+
items:
|
|
126
|
+
$ref: "#/components/schemas/ClientContactSchema"
|
|
127
|
+
pagination:
|
|
128
|
+
$ref: "#/components/schemas/PaginationResult"
|
|
129
|
+
"400":
|
|
130
|
+
$ref: "#/components/responses/BadRequest"
|
|
131
|
+
"401":
|
|
132
|
+
$ref: "#/components/responses/Unauthorized"
|
|
133
|
+
"500":
|
|
134
|
+
$ref: "#/components/responses/InternalServerError"
|
|
135
|
+
post:
|
|
136
|
+
tags:
|
|
137
|
+
- Client Contact
|
|
138
|
+
summary: Create a new client contact
|
|
139
|
+
description: Create a new client contact
|
|
140
|
+
requestBody:
|
|
141
|
+
required: true
|
|
142
|
+
content:
|
|
143
|
+
application/json:
|
|
144
|
+
schema:
|
|
145
|
+
$ref: "#/components/schemas/ClientContactCreateBody"
|
|
146
|
+
responses:
|
|
147
|
+
"201":
|
|
148
|
+
description: Client contact created successfully
|
|
149
|
+
content:
|
|
150
|
+
application/json:
|
|
151
|
+
schema:
|
|
152
|
+
type: object
|
|
153
|
+
properties:
|
|
154
|
+
success:
|
|
155
|
+
type: boolean
|
|
156
|
+
example: true
|
|
157
|
+
data:
|
|
158
|
+
$ref: "#/components/schemas/ClientContactSchema"
|
|
159
|
+
"400":
|
|
160
|
+
$ref: "#/components/responses/BadRequest"
|
|
161
|
+
"401":
|
|
162
|
+
$ref: "#/components/responses/Unauthorized"
|
|
163
|
+
"500":
|
|
164
|
+
$ref: "#/components/responses/InternalServerError"
|
|
165
|
+
/client-contact/{id}:
|
|
166
|
+
get:
|
|
167
|
+
tags:
|
|
168
|
+
- Client Contact
|
|
169
|
+
summary: Get a specific client contact
|
|
170
|
+
description: Retrieve a specific client contact by ID
|
|
171
|
+
parameters:
|
|
172
|
+
- name: id
|
|
173
|
+
in: path
|
|
174
|
+
description: Client contact ID
|
|
175
|
+
required: true
|
|
176
|
+
schema:
|
|
177
|
+
type: string
|
|
178
|
+
responses:
|
|
179
|
+
"200":
|
|
180
|
+
description: Successful response
|
|
181
|
+
content:
|
|
182
|
+
application/json:
|
|
183
|
+
schema:
|
|
184
|
+
type: object
|
|
185
|
+
properties:
|
|
186
|
+
success:
|
|
187
|
+
type: boolean
|
|
188
|
+
example: true
|
|
189
|
+
data:
|
|
190
|
+
$ref: "#/components/schemas/ClientContactSchema"
|
|
191
|
+
"404":
|
|
192
|
+
$ref: "#/components/responses/NotFound"
|
|
193
|
+
"401":
|
|
194
|
+
$ref: "#/components/responses/Unauthorized"
|
|
195
|
+
"500":
|
|
196
|
+
$ref: "#/components/responses/InternalServerError"
|
|
197
|
+
put:
|
|
198
|
+
tags:
|
|
199
|
+
- Client Contact
|
|
200
|
+
summary: Update a client contact
|
|
201
|
+
description: Update an existing client contact
|
|
202
|
+
parameters:
|
|
203
|
+
- name: id
|
|
204
|
+
in: path
|
|
205
|
+
description: Client contact ID
|
|
206
|
+
required: true
|
|
207
|
+
schema:
|
|
208
|
+
type: string
|
|
209
|
+
requestBody:
|
|
210
|
+
required: true
|
|
211
|
+
content:
|
|
212
|
+
application/json:
|
|
213
|
+
schema:
|
|
214
|
+
$ref: "#/components/schemas/ClientContactUpdateBody"
|
|
215
|
+
responses:
|
|
216
|
+
"200":
|
|
217
|
+
description: Client contact updated successfully
|
|
218
|
+
content:
|
|
219
|
+
application/json:
|
|
220
|
+
schema:
|
|
221
|
+
type: object
|
|
222
|
+
properties:
|
|
223
|
+
success:
|
|
224
|
+
type: boolean
|
|
225
|
+
example: true
|
|
226
|
+
data:
|
|
227
|
+
$ref: "#/components/schemas/ClientContactSchema"
|
|
228
|
+
"400":
|
|
229
|
+
$ref: "#/components/responses/BadRequest"
|
|
230
|
+
"404":
|
|
231
|
+
$ref: "#/components/responses/NotFound"
|
|
232
|
+
"401":
|
|
233
|
+
$ref: "#/components/responses/Unauthorized"
|
|
234
|
+
"500":
|
|
235
|
+
$ref: "#/components/responses/InternalServerError"
|
|
236
|
+
delete:
|
|
237
|
+
tags:
|
|
238
|
+
- Client Contact
|
|
239
|
+
summary: Delete a client contact
|
|
240
|
+
description: Delete an existing client contact
|
|
241
|
+
parameters:
|
|
242
|
+
- name: id
|
|
243
|
+
in: path
|
|
244
|
+
description: Client contact ID
|
|
245
|
+
required: true
|
|
246
|
+
schema:
|
|
247
|
+
type: string
|
|
248
|
+
responses:
|
|
249
|
+
"200":
|
|
250
|
+
description: Client contact deleted successfully
|
|
251
|
+
content:
|
|
252
|
+
application/json:
|
|
253
|
+
schema:
|
|
254
|
+
type: object
|
|
255
|
+
properties:
|
|
256
|
+
success:
|
|
257
|
+
type: boolean
|
|
258
|
+
example: true
|
|
259
|
+
data:
|
|
260
|
+
$ref: "#/components/schemas/ClientContactSchema"
|
|
261
|
+
"404":
|
|
262
|
+
$ref: "#/components/responses/NotFound"
|
|
263
|
+
"401":
|
|
264
|
+
$ref: "#/components/responses/Unauthorized"
|
|
265
|
+
"500":
|
|
266
|
+
$ref: "#/components/responses/InternalServerError"
|
|
267
|
+
components:
|
|
268
|
+
securitySchemes:
|
|
269
|
+
ApiKeyAuth:
|
|
270
|
+
type: apiKey
|
|
271
|
+
in: header
|
|
272
|
+
name: Authorization
|
|
273
|
+
description: Bearer token authentication
|
|
274
|
+
schemas:
|
|
275
|
+
ClientContactSchema:
|
|
276
|
+
type: object
|
|
277
|
+
properties:
|
|
278
|
+
_id:
|
|
279
|
+
type: string
|
|
280
|
+
description: Unique identifier for the client contact
|
|
281
|
+
example: "60f1b2b3c9e9a12345678901"
|
|
282
|
+
creator:
|
|
283
|
+
oneOf:
|
|
284
|
+
- $ref: "#/components/schemas/AdminCreator"
|
|
285
|
+
- $ref: "#/components/schemas/RepCreator"
|
|
286
|
+
- $ref: "#/components/schemas/ClientCreator"
|
|
287
|
+
description: User who created this contact
|
|
288
|
+
editor:
|
|
289
|
+
oneOf:
|
|
290
|
+
- $ref: "#/components/schemas/AdminCreator"
|
|
291
|
+
- $ref: "#/components/schemas/RepCreator"
|
|
292
|
+
- $ref: "#/components/schemas/ClientCreator"
|
|
293
|
+
description: User who last edited this contact
|
|
294
|
+
name:
|
|
295
|
+
type: string
|
|
296
|
+
description: Contact name
|
|
297
|
+
example: "John Smith"
|
|
298
|
+
local_name:
|
|
299
|
+
type: string
|
|
300
|
+
description: Local/translated name
|
|
301
|
+
example: "جون سميث"
|
|
302
|
+
phone1:
|
|
303
|
+
type: string
|
|
304
|
+
description: Primary phone number
|
|
305
|
+
example: "+1234567890"
|
|
306
|
+
phone2:
|
|
307
|
+
type: string
|
|
308
|
+
description: Secondary phone number
|
|
309
|
+
example: "+1234567891"
|
|
310
|
+
email:
|
|
311
|
+
type: string
|
|
312
|
+
format: email
|
|
313
|
+
description: Email address
|
|
314
|
+
example: "john.smith@example.com"
|
|
315
|
+
title:
|
|
316
|
+
type: string
|
|
317
|
+
description: Job title or position
|
|
318
|
+
example: "Sales Manager"
|
|
319
|
+
extra_info:
|
|
320
|
+
type: string
|
|
321
|
+
description: Additional information about the contact
|
|
322
|
+
example: "Primary contact for technical issues"
|
|
323
|
+
disabled:
|
|
324
|
+
type: boolean
|
|
325
|
+
description: Whether the contact is disabled
|
|
326
|
+
example: false
|
|
327
|
+
media:
|
|
328
|
+
type: array
|
|
329
|
+
items:
|
|
330
|
+
type: string
|
|
331
|
+
description: Array of media file URLs
|
|
332
|
+
example: ["https://example.com/photo1.jpg"]
|
|
333
|
+
cover_photo:
|
|
334
|
+
type: string
|
|
335
|
+
description: Cover photo URL
|
|
336
|
+
example: "https://example.com/cover.jpg"
|
|
337
|
+
integration_meta:
|
|
338
|
+
type: object
|
|
339
|
+
additionalProperties: true
|
|
340
|
+
description: Metadata for third-party integrations
|
|
341
|
+
example: { "external_id": "contact_123", "sync_status": "active" }
|
|
342
|
+
company_namespace:
|
|
343
|
+
type: array
|
|
344
|
+
items:
|
|
345
|
+
type: string
|
|
346
|
+
description: Company namespaces this contact belongs to
|
|
347
|
+
example: ["company1"]
|
|
348
|
+
createdAt:
|
|
349
|
+
type: string
|
|
350
|
+
format: date-time
|
|
351
|
+
description: Creation timestamp
|
|
352
|
+
example: "2023-01-15T10:30:00.000Z"
|
|
353
|
+
updatedAt:
|
|
354
|
+
type: string
|
|
355
|
+
format: date-time
|
|
356
|
+
description: Last update timestamp
|
|
357
|
+
example: "2023-01-15T10:30:00.000Z"
|
|
358
|
+
__v:
|
|
359
|
+
type: integer
|
|
360
|
+
description: Version key
|
|
361
|
+
example: 0
|
|
362
|
+
required:
|
|
363
|
+
- _id
|
|
364
|
+
- creator
|
|
365
|
+
- name
|
|
366
|
+
- company_namespace
|
|
367
|
+
- createdAt
|
|
368
|
+
- updatedAt
|
|
369
|
+
- __v
|
|
370
|
+
ClientContactCreateBody:
|
|
371
|
+
type: object
|
|
372
|
+
properties:
|
|
373
|
+
name:
|
|
374
|
+
type: string
|
|
375
|
+
description: Contact name (required)
|
|
376
|
+
example: "John Smith"
|
|
377
|
+
creator:
|
|
378
|
+
oneOf:
|
|
379
|
+
- $ref: "#/components/schemas/AdminCreator"
|
|
380
|
+
- $ref: "#/components/schemas/RepCreator"
|
|
381
|
+
- $ref: "#/components/schemas/ClientCreator"
|
|
382
|
+
description: User who created this contact
|
|
383
|
+
editor:
|
|
384
|
+
oneOf:
|
|
385
|
+
- $ref: "#/components/schemas/AdminCreator"
|
|
386
|
+
- $ref: "#/components/schemas/RepCreator"
|
|
387
|
+
- $ref: "#/components/schemas/ClientCreator"
|
|
388
|
+
description: User who last edited this contact
|
|
389
|
+
local_name:
|
|
390
|
+
type: string
|
|
391
|
+
description: Local/translated name
|
|
392
|
+
example: "جون سميث"
|
|
393
|
+
phone1:
|
|
394
|
+
type: string
|
|
395
|
+
description: Primary phone number
|
|
396
|
+
example: "+1234567890"
|
|
397
|
+
phone2:
|
|
398
|
+
type: string
|
|
399
|
+
description: Secondary phone number
|
|
400
|
+
example: "+1234567891"
|
|
401
|
+
email:
|
|
402
|
+
type: string
|
|
403
|
+
format: email
|
|
404
|
+
description: Email address
|
|
405
|
+
example: "john.smith@example.com"
|
|
406
|
+
title:
|
|
407
|
+
type: string
|
|
408
|
+
description: Job title or position
|
|
409
|
+
example: "Sales Manager"
|
|
410
|
+
extra_info:
|
|
411
|
+
type: string
|
|
412
|
+
description: Additional information about the contact
|
|
413
|
+
example: "Primary contact for technical issues"
|
|
414
|
+
disabled:
|
|
415
|
+
type: boolean
|
|
416
|
+
description: Whether the contact is disabled
|
|
417
|
+
example: false
|
|
418
|
+
media:
|
|
419
|
+
type: array
|
|
420
|
+
items:
|
|
421
|
+
type: string
|
|
422
|
+
description: Array of media file URLs
|
|
423
|
+
example: ["https://example.com/photo1.jpg"]
|
|
424
|
+
cover_photo:
|
|
425
|
+
type: string
|
|
426
|
+
description: Cover photo URL
|
|
427
|
+
example: "https://example.com/cover.jpg"
|
|
428
|
+
integration_meta:
|
|
429
|
+
type: object
|
|
430
|
+
additionalProperties: true
|
|
431
|
+
description: Metadata for third-party integrations
|
|
432
|
+
example: { "external_id": "contact_123" }
|
|
433
|
+
company_namespace:
|
|
434
|
+
type: array
|
|
435
|
+
items:
|
|
436
|
+
type: string
|
|
437
|
+
description: Company namespaces this contact belongs to
|
|
438
|
+
example: ["company1"]
|
|
439
|
+
required:
|
|
440
|
+
- name
|
|
441
|
+
ClientContactUpdateBody:
|
|
442
|
+
type: object
|
|
443
|
+
properties:
|
|
444
|
+
name:
|
|
445
|
+
type: string
|
|
446
|
+
description: Contact name
|
|
447
|
+
example: "John Smith Updated"
|
|
448
|
+
creator:
|
|
449
|
+
oneOf:
|
|
450
|
+
- $ref: "#/components/schemas/AdminCreator"
|
|
451
|
+
- $ref: "#/components/schemas/RepCreator"
|
|
452
|
+
- $ref: "#/components/schemas/ClientCreator"
|
|
453
|
+
description: User who created this contact
|
|
454
|
+
editor:
|
|
455
|
+
oneOf:
|
|
456
|
+
- $ref: "#/components/schemas/AdminCreator"
|
|
457
|
+
- $ref: "#/components/schemas/RepCreator"
|
|
458
|
+
- $ref: "#/components/schemas/ClientCreator"
|
|
459
|
+
description: User who last edited this contact
|
|
460
|
+
local_name:
|
|
461
|
+
type: string
|
|
462
|
+
description: Local/translated name
|
|
463
|
+
example: "جون سميث محدث"
|
|
464
|
+
phone1:
|
|
465
|
+
type: string
|
|
466
|
+
description: Primary phone number
|
|
467
|
+
example: "+1234567890"
|
|
468
|
+
phone2:
|
|
469
|
+
type: string
|
|
470
|
+
description: Secondary phone number
|
|
471
|
+
example: "+1234567891"
|
|
472
|
+
email:
|
|
473
|
+
type: string
|
|
474
|
+
format: email
|
|
475
|
+
description: Email address
|
|
476
|
+
example: "john.smith.updated@example.com"
|
|
477
|
+
title:
|
|
478
|
+
type: string
|
|
479
|
+
description: Job title or position
|
|
480
|
+
example: "Senior Sales Manager"
|
|
481
|
+
extra_info:
|
|
482
|
+
type: string
|
|
483
|
+
description: Additional information about the contact
|
|
484
|
+
example: "Primary contact for technical issues - updated"
|
|
485
|
+
disabled:
|
|
486
|
+
type: boolean
|
|
487
|
+
description: Whether the contact is disabled
|
|
488
|
+
example: false
|
|
489
|
+
media:
|
|
490
|
+
type: array
|
|
491
|
+
items:
|
|
492
|
+
type: string
|
|
493
|
+
description: Array of media file URLs
|
|
494
|
+
example:
|
|
495
|
+
["https://example.com/photo1.jpg", "https://example.com/photo2.jpg"]
|
|
496
|
+
cover_photo:
|
|
497
|
+
type: string
|
|
498
|
+
description: Cover photo URL
|
|
499
|
+
example: "https://example.com/cover-updated.jpg"
|
|
500
|
+
integration_meta:
|
|
501
|
+
type: object
|
|
502
|
+
additionalProperties: true
|
|
503
|
+
description: Metadata for third-party integrations
|
|
504
|
+
example: { "external_id": "contact_123", "sync_status": "updated" }
|
|
505
|
+
company_namespace:
|
|
506
|
+
type: array
|
|
507
|
+
items:
|
|
508
|
+
type: string
|
|
509
|
+
description: Company namespaces this contact belongs to
|
|
510
|
+
example: ["company1"]
|
|
511
|
+
_id:
|
|
512
|
+
type: string
|
|
513
|
+
description: Contact ID (for internal use)
|
|
514
|
+
example: "60f1b2b3c9e9a12345678901"
|
|
515
|
+
createdAt:
|
|
516
|
+
type: string
|
|
517
|
+
format: date-time
|
|
518
|
+
description: Creation timestamp (for internal use)
|
|
519
|
+
example: "2023-01-15T10:30:00.000Z"
|
|
520
|
+
updatedAt:
|
|
521
|
+
type: string
|
|
522
|
+
format: date-time
|
|
523
|
+
description: Last update timestamp (for internal use)
|
|
524
|
+
example: "2023-01-15T10:30:00.000Z"
|
|
525
|
+
__v:
|
|
526
|
+
type: integer
|
|
527
|
+
description: Version key (for internal use)
|
|
528
|
+
example: 0
|
|
529
|
+
AdminCreator:
|
|
530
|
+
type: object
|
|
531
|
+
properties:
|
|
532
|
+
_id:
|
|
533
|
+
type: string
|
|
534
|
+
example: "60f1b2b3c9e9a12345678901"
|
|
535
|
+
username:
|
|
536
|
+
type: string
|
|
537
|
+
example: "admin_user"
|
|
538
|
+
name:
|
|
539
|
+
type: string
|
|
540
|
+
example: "Admin User"
|
|
541
|
+
type:
|
|
542
|
+
type: string
|
|
543
|
+
enum: ["admin"]
|
|
544
|
+
example: "admin"
|
|
545
|
+
required:
|
|
546
|
+
- _id
|
|
547
|
+
- username
|
|
548
|
+
- name
|
|
549
|
+
- type
|
|
550
|
+
RepCreator:
|
|
551
|
+
type: object
|
|
552
|
+
properties:
|
|
553
|
+
_id:
|
|
554
|
+
type: string
|
|
555
|
+
example: "60f1b2b3c9e9a12345678902"
|
|
556
|
+
username:
|
|
557
|
+
type: string
|
|
558
|
+
example: "rep_user"
|
|
559
|
+
name:
|
|
560
|
+
type: string
|
|
561
|
+
example: "Rep User"
|
|
562
|
+
type:
|
|
563
|
+
type: string
|
|
564
|
+
enum: ["rep"]
|
|
565
|
+
example: "rep"
|
|
566
|
+
required:
|
|
567
|
+
- _id
|
|
568
|
+
- username
|
|
569
|
+
- name
|
|
570
|
+
- type
|
|
571
|
+
ClientCreator:
|
|
572
|
+
type: object
|
|
573
|
+
properties:
|
|
574
|
+
_id:
|
|
575
|
+
type: string
|
|
576
|
+
example: "60f1b2b3c9e9a12345678903"
|
|
577
|
+
username:
|
|
578
|
+
type: string
|
|
579
|
+
example: "client_user"
|
|
580
|
+
name:
|
|
581
|
+
type: string
|
|
582
|
+
example: "Client User"
|
|
583
|
+
type:
|
|
584
|
+
type: string
|
|
585
|
+
enum: ["client"]
|
|
586
|
+
example: "client"
|
|
587
|
+
required:
|
|
588
|
+
- _id
|
|
589
|
+
- username
|
|
590
|
+
- name
|
|
591
|
+
- type
|
|
592
|
+
PaginationResult:
|
|
593
|
+
type: object
|
|
594
|
+
properties:
|
|
595
|
+
page:
|
|
596
|
+
type: integer
|
|
597
|
+
example: 1
|
|
598
|
+
per_page:
|
|
599
|
+
type: integer
|
|
600
|
+
example: 25
|
|
601
|
+
pre_page:
|
|
602
|
+
type: integer
|
|
603
|
+
example: 0
|
|
604
|
+
next_page:
|
|
605
|
+
type: integer
|
|
606
|
+
example: 2
|
|
607
|
+
total:
|
|
608
|
+
type: integer
|
|
609
|
+
example: 100
|
|
610
|
+
total_page:
|
|
611
|
+
type: integer
|
|
612
|
+
example: 4
|
|
613
|
+
responses:
|
|
614
|
+
BadRequest:
|
|
615
|
+
description: Bad request
|
|
616
|
+
content:
|
|
617
|
+
application/json:
|
|
618
|
+
schema:
|
|
619
|
+
type: object
|
|
620
|
+
properties:
|
|
621
|
+
success:
|
|
622
|
+
type: boolean
|
|
623
|
+
example: false
|
|
624
|
+
error:
|
|
625
|
+
type: string
|
|
626
|
+
example: "Invalid request parameters"
|
|
627
|
+
Unauthorized:
|
|
628
|
+
description: Unauthorized
|
|
629
|
+
content:
|
|
630
|
+
application/json:
|
|
631
|
+
schema:
|
|
632
|
+
type: object
|
|
633
|
+
properties:
|
|
634
|
+
success:
|
|
635
|
+
type: boolean
|
|
636
|
+
example: false
|
|
637
|
+
error:
|
|
638
|
+
type: string
|
|
639
|
+
example: "Authentication required"
|
|
640
|
+
NotFound:
|
|
641
|
+
description: Resource not found
|
|
642
|
+
content:
|
|
643
|
+
application/json:
|
|
644
|
+
schema:
|
|
645
|
+
type: object
|
|
646
|
+
properties:
|
|
647
|
+
success:
|
|
648
|
+
type: boolean
|
|
649
|
+
example: false
|
|
650
|
+
error:
|
|
651
|
+
type: string
|
|
652
|
+
example: "Client contact not found"
|
|
653
|
+
InternalServerError:
|
|
654
|
+
description: Internal server error
|
|
655
|
+
content:
|
|
656
|
+
application/json:
|
|
657
|
+
schema:
|
|
658
|
+
type: object
|
|
659
|
+
properties:
|
|
660
|
+
success:
|
|
661
|
+
type: boolean
|
|
662
|
+
example: false
|
|
663
|
+
error:
|
|
664
|
+
type: string
|
|
665
|
+
example: "Internal server error"
|