@homespot-sdk/core 0.0.301 → 0.0.302

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.
@@ -213,14 +213,10 @@ export const RolesRequestSchema = {
213
213
  'MEMBER_READ',
214
214
  'MEMBER_WRITE',
215
215
  'MEETING_READ_ALL',
216
- 'LEAD_READ',
217
- 'LEAD_WRITE',
218
- 'LEAD_READ_ALL',
219
- 'LEAD_WRITE_ALL',
220
- 'CLIENT_READ',
221
- 'CLIENT_WRITE',
222
- 'CLIENT_READ_ALL',
223
- 'CLIENT_WRITE_ALL',
216
+ 'CONTACT_READ',
217
+ 'CONTACT_WRITE',
218
+ 'CONTACT_READ_ALL',
219
+ 'CONTACT_WRITE_ALL',
224
220
  'PROPERTY_READ_ALL',
225
221
  ],
226
222
  },
@@ -306,159 +302,6 @@ export const RescheduleRequestSchema = {
306
302
  },
307
303
  required: ['start'],
308
304
  };
309
- export const RecordSourceRequestSchema = {
310
- type: 'object',
311
- properties: {
312
- sourceUrl: {
313
- type: 'string',
314
- },
315
- },
316
- };
317
- export const NoteRequestSchema = {
318
- type: 'object',
319
- properties: {
320
- note: {
321
- type: 'string',
322
- },
323
- },
324
- };
325
- export const RecordLostLeadRequestSchema = {
326
- type: 'object',
327
- properties: {
328
- reason: {
329
- type: 'string',
330
- enum: [
331
- 'NOT_WORKING_WITH_AGENTS',
332
- 'NOT_RESPONDING',
333
- 'ALREADY_SOLD',
334
- 'COULD_NOT_NEGOTIATE_PRICE',
335
- 'CHOSE_ANOTHER_AGENCY',
336
- 'CHANGED_PLANS',
337
- 'OUT_OF_BUDGET',
338
- 'SPAM',
339
- 'OTHER',
340
- ],
341
- },
342
- },
343
- required: ['reason'],
344
- };
345
- export const IntentRequestSchema = {
346
- type: 'object',
347
- properties: {
348
- clientType: {
349
- type: 'string',
350
- enum: ['LISTING', 'SEEKING'],
351
- },
352
- listingType: {
353
- type: 'string',
354
- enum: ['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE'],
355
- },
356
- propertyType: {
357
- type: 'string',
358
- enum: [
359
- 'HOUSE',
360
- 'TOWN_HOUSE',
361
- 'COUNTRY_HOUSE',
362
- 'VILLA',
363
- 'COTTAGE',
364
- 'APARTMENT',
365
- 'DUPLEX',
366
- 'TRIPLEX',
367
- 'SEMI_BASEMENT',
368
- 'ATTIC',
369
- 'AGRICULTURAL_LAND',
370
- 'RESIDENTIAL_LAND',
371
- 'HOTEL_ROOM',
372
- 'MOTEL_ROOM',
373
- 'CO_LIVING_SPACE',
374
- 'OFFICE',
375
- 'COMMERCIAL_SPACE',
376
- 'CO_WORKING_SPACE',
377
- 'WAREHOUSE',
378
- 'GARAGE',
379
- ],
380
- },
381
- price: {
382
- $ref: '#/components/schemas/PriceRangeRequest',
383
- },
384
- targetLocation: {
385
- $ref: '#/components/schemas/LocationTargetRequest',
386
- },
387
- area: {
388
- type: 'number',
389
- format: 'double',
390
- },
391
- numberOfRooms: {
392
- type: 'integer',
393
- format: 'int32',
394
- },
395
- },
396
- required: ['clientType', 'listingType', 'propertyType'],
397
- };
398
- export const LocationTargetRequestSchema = {
399
- type: 'object',
400
- properties: {
401
- id: {
402
- type: 'integer',
403
- format: 'int64',
404
- },
405
- type: {
406
- type: 'string',
407
- enum: ['REGION', 'DISTRICT', 'SUBDISTRICT', 'STREET'],
408
- },
409
- },
410
- required: ['id', 'type'],
411
- };
412
- export const PriceRangeRequestSchema = {
413
- type: 'object',
414
- properties: {
415
- min: {
416
- type: 'number',
417
- },
418
- max: {
419
- type: 'number',
420
- },
421
- },
422
- };
423
- export const ContactInfoRequestSchema = {
424
- type: 'object',
425
- properties: {
426
- firstName: {
427
- type: 'string',
428
- maxLength: 20,
429
- minLength: 1,
430
- },
431
- lastName: {
432
- type: 'string',
433
- maxLength: 20,
434
- minLength: 1,
435
- },
436
- gender: {
437
- type: 'string',
438
- enum: ['MALE', 'FEMALE', 'UNKNOWN'],
439
- },
440
- email: {
441
- type: 'string',
442
- format: 'email',
443
- },
444
- phone: {
445
- type: 'string',
446
- maxLength: 20,
447
- minLength: 1,
448
- },
449
- },
450
- required: ['phone'],
451
- };
452
- export const ReassignMemberRequestSchema = {
453
- type: 'object',
454
- properties: {
455
- memberId: {
456
- type: 'string',
457
- format: 'uuid',
458
- },
459
- },
460
- required: ['memberId'],
461
- };
462
305
  export const RenameClientRecommendationsRequestSchema = {
463
306
  type: 'object',
464
307
  properties: {
@@ -481,15 +324,6 @@ export const AgreementRequestSchema = {
481
324
  },
482
325
  required: ['type'],
483
326
  };
484
- export const ReprioritizeClientRequestSchema = {
485
- type: 'object',
486
- properties: {
487
- priority: {
488
- type: 'string',
489
- enum: ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW'],
490
- },
491
- },
492
- };
493
327
  export const CaptureInterestRequestSchema = {
494
328
  type: 'object',
495
329
  properties: {
@@ -571,6 +405,80 @@ export const CaptureInterestRequestSchema = {
571
405
  },
572
406
  required: ['listingType', 'propertyTypes'],
573
407
  };
408
+ export const LocationTargetRequestSchema = {
409
+ type: 'object',
410
+ properties: {
411
+ id: {
412
+ type: 'integer',
413
+ format: 'int64',
414
+ },
415
+ type: {
416
+ type: 'string',
417
+ enum: ['REGION', 'DISTRICT', 'SUBDISTRICT', 'STREET'],
418
+ },
419
+ },
420
+ required: ['id', 'type'],
421
+ };
422
+ export const CommentBodyRequestSchema = {
423
+ type: 'object',
424
+ properties: {
425
+ body: {
426
+ type: 'string',
427
+ maxLength: 4000,
428
+ minLength: 0,
429
+ },
430
+ },
431
+ required: ['body'],
432
+ };
433
+ export const ContactStatusRequestSchema = {
434
+ type: 'object',
435
+ properties: {
436
+ status: {
437
+ type: 'string',
438
+ enum: [
439
+ 'NEW',
440
+ 'ON_HOLD',
441
+ 'COLD',
442
+ 'WORM',
443
+ 'HOT',
444
+ 'WAITING_PAYMENT',
445
+ 'LOST',
446
+ 'CLOSED',
447
+ ],
448
+ },
449
+ },
450
+ required: ['status'],
451
+ };
452
+ export const ReprioritizeClientRequestSchema = {
453
+ type: 'object',
454
+ properties: {
455
+ priority: {
456
+ type: 'string',
457
+ enum: ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW'],
458
+ },
459
+ },
460
+ required: ['priority'],
461
+ };
462
+ export const RecordLostContactRequestSchema = {
463
+ type: 'object',
464
+ properties: {
465
+ reason: {
466
+ type: 'string',
467
+ enum: [
468
+ 'NOT_WORKING_WITH_AGENTS',
469
+ 'NOT_RESPONDING',
470
+ 'ALREADY_SOLD',
471
+ 'COULD_NOT_NEGOTIATE_PRICE',
472
+ 'CHOSE_ANOTHER_AGENCY',
473
+ 'CHANGED_PLANS',
474
+ 'OUT_OF_BUDGET',
475
+ 'SPAM',
476
+ 'OTHER',
477
+ ],
478
+ },
479
+ },
480
+ required: ['reason'],
481
+ };
574
482
  export const UpdateContactPreferencesRequestSchema = {
575
483
  type: 'object',
576
484
  properties: {
@@ -588,6 +496,45 @@ export const UpdateContactPreferencesRequestSchema = {
588
496
  },
589
497
  required: ['contactMethods'],
590
498
  };
499
+ export const ContactInfoRequestSchema = {
500
+ type: 'object',
501
+ properties: {
502
+ firstName: {
503
+ type: 'string',
504
+ maxLength: 20,
505
+ minLength: 1,
506
+ },
507
+ lastName: {
508
+ type: 'string',
509
+ maxLength: 20,
510
+ minLength: 1,
511
+ },
512
+ gender: {
513
+ type: 'string',
514
+ enum: ['MALE', 'FEMALE', 'UNKNOWN'],
515
+ },
516
+ email: {
517
+ type: 'string',
518
+ format: 'email',
519
+ },
520
+ phone: {
521
+ type: 'string',
522
+ maxLength: 20,
523
+ minLength: 1,
524
+ },
525
+ },
526
+ required: ['phone'],
527
+ };
528
+ export const ReassignMemberRequestSchema = {
529
+ type: 'object',
530
+ properties: {
531
+ memberId: {
532
+ type: 'string',
533
+ format: 'uuid',
534
+ },
535
+ },
536
+ required: ['memberId'],
537
+ };
591
538
  export const AddressRequestSchema = {
592
539
  type: 'object',
593
540
  properties: {
@@ -768,34 +715,20 @@ export const IdResponseIntegerSchema = {
768
715
  },
769
716
  required: ['id'],
770
717
  };
771
- export const CaptureLeadRequestSchema = {
718
+ export const RateRecommendationItemRequestSchema = {
772
719
  type: 'object',
773
720
  properties: {
774
- contactInfo: {
775
- $ref: '#/components/schemas/ContactInfoRequest',
721
+ decision: {
722
+ type: 'string',
723
+ enum: ['MAYBE', 'DISLIKE', 'LIKE', 'VISIT'],
776
724
  },
777
725
  note: {
778
726
  type: 'string',
779
- maxLength: 500,
727
+ maxLength: 100,
780
728
  minLength: 0,
781
729
  },
782
730
  },
783
- required: ['contactInfo'],
784
- };
785
- export const RateRecommendationItemRequestSchema = {
786
- type: 'object',
787
- properties: {
788
- decision: {
789
- type: 'string',
790
- enum: ['MAYBE', 'DISLIKE', 'LIKE', 'VISIT'],
791
- },
792
- note: {
793
- type: 'string',
794
- maxLength: 100,
795
- minLength: 0,
796
- },
797
- },
798
- required: ['decision'],
731
+ required: ['decision'],
799
732
  };
800
733
  export const AttendeeRequestSchema = {
801
734
  type: 'object',
@@ -808,7 +741,7 @@ export const AttendeeRequestSchema = {
808
741
  type: 'string',
809
742
  format: 'uuid',
810
743
  },
811
- clientId: {
744
+ contactId: {
812
745
  type: 'integer',
813
746
  format: 'int64',
814
747
  },
@@ -919,28 +852,6 @@ export const MeetingResponseSchema = {
919
852
  },
920
853
  required: ['meetingId'],
921
854
  };
922
- export const LeadIdSchema = {
923
- type: 'object',
924
- properties: {
925
- value: {
926
- type: 'integer',
927
- format: 'int64',
928
- },
929
- },
930
- };
931
- export const OnboardFromSourceRequestSchema = {
932
- type: 'object',
933
- properties: {
934
- sourceLink: {
935
- type: 'string',
936
- },
937
- phone: {
938
- type: 'string',
939
- minLength: 1,
940
- },
941
- },
942
- required: ['phone', 'sourceLink'],
943
- };
944
855
  export const BulkRecruitmentRequestSchema = {
945
856
  type: 'object',
946
857
  properties: {
@@ -1000,14 +911,10 @@ export const AgencyPrincipalDtoSchema = {
1000
911
  'MEMBER_READ',
1001
912
  'MEMBER_WRITE',
1002
913
  'MEETING_READ_ALL',
1003
- 'LEAD_READ',
1004
- 'LEAD_WRITE',
1005
- 'LEAD_READ_ALL',
1006
- 'LEAD_WRITE_ALL',
1007
- 'CLIENT_READ',
1008
- 'CLIENT_WRITE',
1009
- 'CLIENT_READ_ALL',
1010
- 'CLIENT_WRITE_ALL',
914
+ 'CONTACT_READ',
915
+ 'CONTACT_WRITE',
916
+ 'CONTACT_READ_ALL',
917
+ 'CONTACT_WRITE_ALL',
1011
918
  'PROPERTY_READ_ALL',
1012
919
  ],
1013
920
  },
@@ -1021,387 +928,119 @@ export const AgencyPrincipalDtoSchema = {
1021
928
  },
1022
929
  },
1023
930
  };
1024
- export const OnboardClientRequestSchema = {
931
+ export const CreateClientRecommendationsRequestSchema = {
1025
932
  type: 'object',
1026
933
  properties: {
1027
- contactInfo: {
1028
- $ref: '#/components/schemas/ContactInfoRequest',
1029
- },
1030
- contactMethods: {
1031
- type: 'array',
1032
- items: {
1033
- type: 'string',
1034
- enum: ['WHATSAPP', 'VIBER', 'PHONE_CALL'],
1035
- },
1036
- uniqueItems: true,
1037
- },
1038
- favoriteContactMethod: {
1039
- type: 'string',
1040
- enum: ['WHATSAPP', 'VIBER', 'PHONE_CALL'],
1041
- },
1042
- priority: {
934
+ title: {
1043
935
  type: 'string',
1044
- enum: ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW'],
936
+ minLength: 1,
1045
937
  },
1046
- convertedFromLeadId: {
938
+ interestId: {
1047
939
  type: 'integer',
1048
940
  format: 'int64',
1049
941
  },
1050
942
  },
1051
- required: ['contactInfo', 'contactMethods'],
943
+ required: ['interestId', 'title'],
1052
944
  };
1053
- export const AddressNamesSchema = {
945
+ export const RecommendationsIdSchema = {
1054
946
  type: 'object',
1055
947
  properties: {
1056
- region: {
1057
- type: 'object',
1058
- additionalProperties: {
1059
- type: 'string',
1060
- },
1061
- },
1062
- district: {
1063
- type: 'object',
1064
- additionalProperties: {
1065
- type: 'string',
1066
- },
1067
- },
1068
- subdistrict: {
1069
- type: 'object',
1070
- additionalProperties: {
1071
- type: 'string',
1072
- },
1073
- },
1074
- street: {
1075
- type: 'object',
1076
- additionalProperties: {
1077
- type: 'string',
1078
- },
948
+ value: {
949
+ type: 'string',
950
+ format: 'uuid',
1079
951
  },
1080
952
  },
1081
953
  };
1082
- export const AddressRefSchema = {
954
+ export const RecommendListingRequestSchema = {
1083
955
  type: 'object',
1084
956
  properties: {
1085
- regionId: {
1086
- type: 'integer',
1087
- format: 'int64',
1088
- },
1089
- districtId: {
1090
- type: 'integer',
1091
- format: 'int64',
1092
- },
1093
- subdistrictId: {
1094
- type: 'integer',
1095
- format: 'int64',
1096
- },
1097
- streetId: {
1098
- type: 'integer',
1099
- format: 'int64',
1100
- },
1101
- names: {
1102
- $ref: '#/components/schemas/AddressNames',
1103
- },
1104
- cadastreCode: {
957
+ externalPropertyId: {
1105
958
  type: 'string',
959
+ format: 'uuid',
1106
960
  },
1107
- coordinates: {
1108
- $ref: '#/components/schemas/Coordinates',
961
+ externalListingId: {
962
+ type: 'string',
963
+ format: 'uuid',
1109
964
  },
1110
965
  },
966
+ required: ['externalListingId', 'externalPropertyId'],
1111
967
  };
1112
- export const ClientOnboardedResponseSchema = {
968
+ export const AddDealRequestSchema = {
1113
969
  type: 'object',
1114
970
  properties: {
1115
- clientId: {
971
+ listingId: {
1116
972
  type: 'integer',
1117
973
  format: 'int64',
1118
974
  },
1119
- importedProperty: {
1120
- $ref: '#/components/schemas/ImportedPropertyDraft',
1121
- },
1122
- },
1123
- required: ['clientId'],
1124
- };
1125
- export const ContactSummarySchema = {
1126
- type: 'object',
1127
- properties: {
1128
- firstName: {
1129
- type: 'string',
1130
- },
1131
- lastName: {
1132
- type: 'string',
1133
- },
1134
- gender: {
1135
- type: 'string',
1136
- enum: ['MALE', 'FEMALE', 'UNKNOWN'],
1137
- },
1138
- email: {
1139
- type: 'string',
1140
- },
1141
- phone: {
975
+ commissionType: {
1142
976
  type: 'string',
977
+ enum: ['FIXED_SALE', 'FIXED_RENT', 'PERCENTAGE', 'MONTHS_OF_RENT'],
1143
978
  },
1144
- },
1145
- };
1146
- export const CoordinatesSchema = {
1147
- type: 'object',
1148
- properties: {
1149
- lat: {
979
+ rate: {
1150
980
  type: 'number',
1151
- format: 'double',
1152
981
  },
1153
- lng: {
982
+ amount: {
1154
983
  type: 'number',
1155
- format: 'double',
1156
984
  },
1157
- },
1158
- };
1159
- export const ImportedPropertyDraftSchema = {
1160
- type: 'object',
1161
- properties: {
1162
- contact: {
1163
- $ref: '#/components/schemas/ContactSummary',
1164
- },
1165
- listingType: {
1166
- type: 'string',
1167
- enum: ['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE'],
1168
- },
1169
- askingPrice: {
985
+ factor: {
1170
986
  type: 'number',
1171
987
  },
1172
- propertyCreationRequest: {
1173
- $ref: '#/components/schemas/PropertyCreationRequest',
1174
- },
1175
- photosForUpload: {
1176
- type: 'array',
1177
- items: {
1178
- $ref: '#/components/schemas/PresignedResult',
1179
- },
1180
- },
1181
- },
1182
- };
1183
- export const PhotoInternalRequestSchema = {
1184
- type: 'object',
1185
- properties: {
1186
- photo: {
1187
- type: 'string',
1188
- maxLength: 255,
1189
- minLength: 0,
1190
- },
1191
- width: {
1192
- type: 'integer',
1193
- format: 'int32',
1194
- maximum: 11000,
1195
- minimum: 10,
1196
- },
1197
- height: {
1198
- type: 'integer',
1199
- format: 'int32',
1200
- maximum: 11000,
1201
- minimum: 10,
1202
- },
1203
988
  },
1204
- required: ['photo', 'width'],
989
+ required: ['commissionType', 'listingId'],
1205
990
  };
1206
- export const PhotoKeySchema = {
991
+ export const InterestIdSchema = {
1207
992
  type: 'object',
1208
993
  properties: {
1209
994
  value: {
1210
- type: 'string',
995
+ type: 'integer',
996
+ format: 'int64',
1211
997
  },
1212
998
  },
1213
999
  };
1214
- export const PresignedResultSchema = {
1000
+ export const IdResponseUUIDSchema = {
1215
1001
  type: 'object',
1216
1002
  properties: {
1217
- originalName: {
1218
- type: 'string',
1219
- },
1220
- key: {
1221
- $ref: '#/components/schemas/PhotoKey',
1222
- },
1223
- presignedUrl: {
1003
+ id: {
1224
1004
  type: 'string',
1005
+ format: 'uuid',
1225
1006
  },
1226
1007
  },
1008
+ required: ['id'],
1227
1009
  };
1228
- export const PropertyCreationRequestSchema = {
1010
+ export const OnboardClientRequestSchema = {
1229
1011
  type: 'object',
1230
1012
  properties: {
1231
- draftId: {
1232
- type: 'string',
1233
- format: 'uuid',
1234
- },
1235
- clientId: {
1236
- type: 'integer',
1237
- format: 'int64',
1238
- },
1239
- propertyType: {
1240
- type: 'string',
1241
- enum: [
1242
- 'HOUSE',
1243
- 'TOWN_HOUSE',
1244
- 'COUNTRY_HOUSE',
1245
- 'VILLA',
1246
- 'COTTAGE',
1247
- 'APARTMENT',
1248
- 'DUPLEX',
1249
- 'TRIPLEX',
1250
- 'SEMI_BASEMENT',
1251
- 'ATTIC',
1252
- 'AGRICULTURAL_LAND',
1253
- 'RESIDENTIAL_LAND',
1254
- 'HOTEL_ROOM',
1255
- 'MOTEL_ROOM',
1256
- 'CO_LIVING_SPACE',
1257
- 'OFFICE',
1258
- 'COMMERCIAL_SPACE',
1259
- 'CO_WORKING_SPACE',
1260
- 'WAREHOUSE',
1261
- 'GARAGE',
1262
- ],
1263
- },
1264
- address: {
1265
- $ref: '#/components/schemas/AddressRef',
1013
+ contactInfo: {
1014
+ $ref: '#/components/schemas/ContactInfoRequest',
1266
1015
  },
1267
- photoUrls: {
1016
+ contactMethods: {
1268
1017
  type: 'array',
1269
1018
  items: {
1270
- $ref: '#/components/schemas/PhotoInternalRequest',
1271
- },
1272
- maxItems: 2147483647,
1273
- minItems: 5,
1274
- },
1275
- spaces: {
1276
- type: 'object',
1277
- additionalProperties: {
1278
- type: 'array',
1279
- items: {
1280
- type: 'number',
1281
- format: 'double',
1282
- },
1283
- },
1284
- example: {
1285
- BATHROOM: [5, 8],
1286
- BEDROOM: [15.5, 16, 22],
1287
- LIVING_ROOM: [52.5],
1288
- KITCHEN: [20.5],
1019
+ type: 'string',
1020
+ enum: ['WHATSAPP', 'VIBER', 'PHONE_CALL'],
1289
1021
  },
1022
+ uniqueItems: true,
1290
1023
  },
1291
- totalArea: {
1292
- type: 'number',
1293
- format: 'double',
1294
- },
1295
- livingArea: {
1296
- type: 'number',
1297
- format: 'double',
1298
- },
1299
- balconyArea: {
1300
- type: 'number',
1301
- format: 'double',
1302
- },
1303
- status: {
1304
- type: 'string',
1305
- enum: [
1306
- 'OLD_BUILDING',
1307
- 'NEW_BUILDING',
1308
- 'UNDER_CONSTRUCTION',
1309
- 'FINISHED',
1310
- ],
1311
- },
1312
- condition: {
1024
+ favoriteContactMethod: {
1313
1025
  type: 'string',
1314
- enum: [
1315
- 'NEWLY_RENOVATED',
1316
- 'OLD_RENOVATED',
1317
- 'CURRENT_RENOVATION',
1318
- 'REPAIRING',
1319
- 'WHITE_FRAME',
1320
- 'BLACK_FRAME',
1321
- 'GREEN_FRAME',
1322
- 'WHITE_PLUS',
1323
- ],
1324
- },
1325
- totalFloors: {
1326
- type: 'integer',
1327
- format: 'int32',
1328
- },
1329
- floorAt: {
1330
- type: 'integer',
1331
- format: 'int32',
1332
- },
1333
- amenities: {
1334
- type: 'array',
1335
- items: {
1336
- type: 'integer',
1337
- format: 'int32',
1338
- },
1026
+ enum: ['WHATSAPP', 'VIBER', 'PHONE_CALL'],
1339
1027
  },
1340
- title: {
1028
+ priority: {
1341
1029
  type: 'string',
1342
- minLength: 1,
1343
- },
1344
- description: {
1345
- type: 'object',
1346
- additionalProperties: {
1347
- type: 'string',
1348
- },
1349
- example: {
1350
- ka: 'example ka',
1351
- en: 'example en',
1352
- ru: 'example ru',
1353
- },
1354
- minProperties: 1,
1030
+ enum: ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW'],
1355
1031
  },
1356
1032
  },
1357
- required: [
1358
- 'address',
1359
- 'amenities',
1360
- 'description',
1361
- 'draftId',
1362
- 'photoUrls',
1363
- 'propertyType',
1364
- 'spaces',
1365
- 'title',
1366
- 'totalArea',
1367
- ],
1033
+ required: ['contactInfo', 'contactMethods'],
1368
1034
  };
1369
- export const CreateClientRecommendationsRequestSchema = {
1035
+ export const IdResponseLongSchema = {
1370
1036
  type: 'object',
1371
1037
  properties: {
1372
- title: {
1373
- type: 'string',
1374
- minLength: 1,
1375
- },
1376
- interestId: {
1038
+ id: {
1377
1039
  type: 'integer',
1378
1040
  format: 'int64',
1379
1041
  },
1380
1042
  },
1381
- required: ['interestId', 'title'],
1382
- };
1383
- export const RecommendationsIdSchema = {
1384
- type: 'object',
1385
- properties: {
1386
- value: {
1387
- type: 'string',
1388
- format: 'uuid',
1389
- },
1390
- },
1391
- };
1392
- export const RecommendListingRequestSchema = {
1393
- type: 'object',
1394
- properties: {
1395
- externalPropertyId: {
1396
- type: 'string',
1397
- format: 'uuid',
1398
- },
1399
- externalListingId: {
1400
- type: 'string',
1401
- format: 'uuid',
1402
- },
1403
- },
1404
- required: ['externalListingId', 'externalPropertyId'],
1043
+ required: ['id'],
1405
1044
  };
1406
1045
  export const ExternalListingPublishRequestSchema = {
1407
1046
  type: 'object',
@@ -1439,47 +1078,18 @@ export const ExternalListingBoostRequestSchema = {
1439
1078
  },
1440
1079
  required: ['listingId', 'numberOfDays', 'platform', 'tier'],
1441
1080
  };
1442
- export const AddDealRequestSchema = {
1081
+ export const OnboardFromSourceRequestSchema = {
1443
1082
  type: 'object',
1444
1083
  properties: {
1445
- listingId: {
1446
- type: 'integer',
1447
- format: 'int64',
1448
- },
1449
- commissionType: {
1084
+ sourceLink: {
1450
1085
  type: 'string',
1451
- enum: ['FIXED_SALE', 'FIXED_RENT', 'PERCENTAGE', 'MONTHS_OF_RENT'],
1452
- },
1453
- rate: {
1454
- type: 'number',
1455
- },
1456
- amount: {
1457
- type: 'number',
1458
- },
1459
- factor: {
1460
- type: 'number',
1461
1086
  },
1462
- },
1463
- required: ['commissionType', 'listingId'],
1464
- };
1465
- export const InterestIdSchema = {
1466
- type: 'object',
1467
- properties: {
1468
- value: {
1469
- type: 'integer',
1470
- format: 'int64',
1471
- },
1472
- },
1473
- };
1474
- export const IdResponseUUIDSchema = {
1475
- type: 'object',
1476
- properties: {
1477
- id: {
1087
+ phone: {
1478
1088
  type: 'string',
1479
- format: 'uuid',
1089
+ minLength: 1,
1480
1090
  },
1481
1091
  },
1482
- required: ['id'],
1092
+ required: ['phone', 'sourceLink'],
1483
1093
  };
1484
1094
  export const OrganizationSummaryViewResponseSchema = {
1485
1095
  type: 'object',
@@ -1524,14 +1134,10 @@ export const OrganizationSummaryViewResponseSchema = {
1524
1134
  'MEMBER_READ',
1525
1135
  'MEMBER_WRITE',
1526
1136
  'MEETING_READ_ALL',
1527
- 'LEAD_READ',
1528
- 'LEAD_WRITE',
1529
- 'LEAD_READ_ALL',
1530
- 'LEAD_WRITE_ALL',
1531
- 'CLIENT_READ',
1532
- 'CLIENT_WRITE',
1533
- 'CLIENT_READ_ALL',
1534
- 'CLIENT_WRITE_ALL',
1137
+ 'CONTACT_READ',
1138
+ 'CONTACT_WRITE',
1139
+ 'CONTACT_READ_ALL',
1140
+ 'CONTACT_WRITE_ALL',
1535
1141
  'PROPERTY_READ_ALL',
1536
1142
  ],
1537
1143
  },
@@ -1649,14 +1255,10 @@ export const RoleResponseSchema = {
1649
1255
  'MEMBER_READ',
1650
1256
  'MEMBER_WRITE',
1651
1257
  'MEETING_READ_ALL',
1652
- 'LEAD_READ',
1653
- 'LEAD_WRITE',
1654
- 'LEAD_READ_ALL',
1655
- 'LEAD_WRITE_ALL',
1656
- 'CLIENT_READ',
1657
- 'CLIENT_WRITE',
1658
- 'CLIENT_READ_ALL',
1659
- 'CLIENT_WRITE_ALL',
1258
+ 'CONTACT_READ',
1259
+ 'CONTACT_WRITE',
1260
+ 'CONTACT_READ_ALL',
1261
+ 'CONTACT_WRITE_ALL',
1660
1262
  'PROPERTY_READ_ALL',
1661
1263
  ],
1662
1264
  },
@@ -1780,7 +1382,7 @@ export const RecommendationsCardViewSchema = {
1780
1382
  clientNote: {
1781
1383
  type: 'string',
1782
1384
  },
1783
- ownerClientId: {
1385
+ ownerContactId: {
1784
1386
  type: 'integer',
1785
1387
  format: 'int64',
1786
1388
  },
@@ -1861,7 +1463,7 @@ export const RecommendationsCardViewSchema = {
1861
1463
  'externalPropertyId',
1862
1464
  'listingId',
1863
1465
  'listingType',
1864
- 'ownerClientId',
1466
+ 'ownerContactId',
1865
1467
  'price',
1866
1468
  'propertyId',
1867
1469
  'recommendationItemId',
@@ -1901,8 +1503,7 @@ export const GroupedPermissionsResponseSchema = {
1901
1503
  'INVITATION',
1902
1504
  'ROLE',
1903
1505
  'MEMBER',
1904
- 'LEAD',
1905
- 'CLIENT',
1506
+ 'CONTACT',
1906
1507
  'PROPERTY',
1907
1508
  ],
1908
1509
  },
@@ -1929,14 +1530,10 @@ export const PermissionResponseSchema = {
1929
1530
  'MEMBER_READ',
1930
1531
  'MEMBER_WRITE',
1931
1532
  'MEETING_READ_ALL',
1932
- 'LEAD_READ',
1933
- 'LEAD_WRITE',
1934
- 'LEAD_READ_ALL',
1935
- 'LEAD_WRITE_ALL',
1936
- 'CLIENT_READ',
1937
- 'CLIENT_WRITE',
1938
- 'CLIENT_READ_ALL',
1939
- 'CLIENT_WRITE_ALL',
1533
+ 'CONTACT_READ',
1534
+ 'CONTACT_WRITE',
1535
+ 'CONTACT_READ_ALL',
1536
+ 'CONTACT_WRITE_ALL',
1940
1537
  'PROPERTY_READ_ALL',
1941
1538
  ],
1942
1539
  },
@@ -1953,14 +1550,10 @@ export const PermissionResponseSchema = {
1953
1550
  'MEMBER_READ',
1954
1551
  'MEMBER_WRITE',
1955
1552
  'MEETING_READ_ALL',
1956
- 'LEAD_READ',
1957
- 'LEAD_WRITE',
1958
- 'LEAD_READ_ALL',
1959
- 'LEAD_WRITE_ALL',
1960
- 'CLIENT_READ',
1961
- 'CLIENT_WRITE',
1962
- 'CLIENT_READ_ALL',
1963
- 'CLIENT_WRITE_ALL',
1553
+ 'CONTACT_READ',
1554
+ 'CONTACT_WRITE',
1555
+ 'CONTACT_READ_ALL',
1556
+ 'CONTACT_WRITE_ALL',
1964
1557
  'PROPERTY_READ_ALL',
1965
1558
  ],
1966
1559
  },
@@ -2424,7 +2017,7 @@ export const AttendeeViewSchema = {
2424
2017
  type: 'string',
2425
2018
  format: 'uuid',
2426
2019
  },
2427
- clientId: {
2020
+ contactId: {
2428
2021
  type: 'integer',
2429
2022
  format: 'int64',
2430
2023
  },
@@ -2578,7 +2171,7 @@ export const ListingGridViewSchema = {
2578
2171
  type: 'integer',
2579
2172
  format: 'int64',
2580
2173
  },
2581
- clientId: {
2174
+ contactId: {
2582
2175
  type: 'integer',
2583
2176
  format: 'int64',
2584
2177
  },
@@ -2737,160 +2330,6 @@ export const GroupCountSchema = {
2737
2330
  },
2738
2331
  required: ['count', 'groupKey', 'label'],
2739
2332
  };
2740
- export const IntentResponseSchema = {
2741
- type: 'object',
2742
- properties: {
2743
- id: {
2744
- type: 'integer',
2745
- format: 'int64',
2746
- },
2747
- clientType: {
2748
- type: 'string',
2749
- enum: ['LISTING', 'SEEKING'],
2750
- },
2751
- listingType: {
2752
- type: 'string',
2753
- enum: ['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE'],
2754
- },
2755
- propertyType: {
2756
- type: 'string',
2757
- enum: [
2758
- 'HOUSE',
2759
- 'TOWN_HOUSE',
2760
- 'COUNTRY_HOUSE',
2761
- 'VILLA',
2762
- 'COTTAGE',
2763
- 'APARTMENT',
2764
- 'DUPLEX',
2765
- 'TRIPLEX',
2766
- 'SEMI_BASEMENT',
2767
- 'ATTIC',
2768
- 'AGRICULTURAL_LAND',
2769
- 'RESIDENTIAL_LAND',
2770
- 'HOTEL_ROOM',
2771
- 'MOTEL_ROOM',
2772
- 'CO_LIVING_SPACE',
2773
- 'OFFICE',
2774
- 'COMMERCIAL_SPACE',
2775
- 'CO_WORKING_SPACE',
2776
- 'WAREHOUSE',
2777
- 'GARAGE',
2778
- ],
2779
- },
2780
- priceMin: {
2781
- type: 'number',
2782
- },
2783
- priceMax: {
2784
- type: 'number',
2785
- },
2786
- area: {
2787
- type: 'number',
2788
- format: 'double',
2789
- },
2790
- numberOfRooms: {
2791
- type: 'integer',
2792
- format: 'int32',
2793
- },
2794
- region: {
2795
- $ref: '#/components/schemas/LocationResponse',
2796
- },
2797
- district: {
2798
- $ref: '#/components/schemas/LocationResponse',
2799
- },
2800
- subDistrict: {
2801
- $ref: '#/components/schemas/LocationResponse',
2802
- },
2803
- street: {
2804
- $ref: '#/components/schemas/LocationResponse',
2805
- },
2806
- },
2807
- required: ['clientType', 'id', 'listingType', 'propertyType'],
2808
- };
2809
- export const LeadGridResponseSchema = {
2810
- type: 'object',
2811
- properties: {
2812
- id: {
2813
- type: 'integer',
2814
- format: 'int64',
2815
- },
2816
- createdBy: {
2817
- type: 'string',
2818
- format: 'uuid',
2819
- },
2820
- assignedTo: {
2821
- $ref: '#/components/schemas/AssignedToResponse',
2822
- },
2823
- status: {
2824
- type: 'string',
2825
- enum: ['NEW', 'ON_HOLD', 'LOST', 'CONVERTED'],
2826
- },
2827
- contactFullName: {
2828
- type: 'string',
2829
- },
2830
- contactGender: {
2831
- type: 'string',
2832
- enum: ['MALE', 'FEMALE', 'UNKNOWN'],
2833
- },
2834
- contactPhoneNumber: {
2835
- type: 'string',
2836
- },
2837
- contactEmail: {
2838
- type: 'string',
2839
- },
2840
- note: {
2841
- type: 'string',
2842
- },
2843
- sourceType: {
2844
- type: 'string',
2845
- enum: ['MY_HOME', 'SS', 'HOME_SPOT', 'UNKNOWN'],
2846
- },
2847
- sourceLink: {
2848
- type: 'string',
2849
- },
2850
- isSearching: {
2851
- type: 'boolean',
2852
- },
2853
- isListing: {
2854
- type: 'boolean',
2855
- },
2856
- createdAt: {
2857
- type: 'string',
2858
- format: 'date-time',
2859
- },
2860
- updatedAt: {
2861
- type: 'string',
2862
- format: 'date-time',
2863
- },
2864
- intents: {
2865
- type: 'array',
2866
- items: {
2867
- $ref: '#/components/schemas/IntentResponse',
2868
- },
2869
- },
2870
- },
2871
- required: [
2872
- 'contactPhoneNumber',
2873
- 'id',
2874
- 'isListing',
2875
- 'isSearching',
2876
- 'sourceType',
2877
- 'status',
2878
- ],
2879
- };
2880
- export const PagedModelLeadGridResponseSchema = {
2881
- type: 'object',
2882
- properties: {
2883
- content: {
2884
- type: 'array',
2885
- items: {
2886
- $ref: '#/components/schemas/LeadGridResponse',
2887
- },
2888
- },
2889
- page: {
2890
- $ref: '#/components/schemas/PageMetadata',
2891
- },
2892
- },
2893
- };
2894
2333
  export const InvitationViewResponseSchema = {
2895
2334
  type: 'object',
2896
2335
  properties: {
@@ -2937,93 +2376,7 @@ export const PagedModelInvitationViewResponseSchema = {
2937
2376
  },
2938
2377
  },
2939
2378
  };
2940
- export const AssignedAgentSchema = {
2941
- type: 'object',
2942
- properties: {
2943
- memberId: {
2944
- type: 'string',
2945
- format: 'uuid',
2946
- },
2947
- firstName: {
2948
- type: 'string',
2949
- },
2950
- lastName: {
2951
- type: 'string',
2952
- },
2953
- photo: {
2954
- type: 'string',
2955
- },
2956
- phone: {
2957
- type: 'string',
2958
- },
2959
- },
2960
- required: ['firstName', 'lastName', 'memberId'],
2961
- };
2962
- export const DuplicateContactInfoSchema = {
2963
- type: 'object',
2964
- properties: {
2965
- type: {
2966
- type: 'string',
2967
- enum: ['LEAD', 'CLIENT'],
2968
- },
2969
- contactId: {
2970
- type: 'integer',
2971
- format: 'int64',
2972
- },
2973
- isActive: {
2974
- type: 'boolean',
2975
- },
2976
- firstName: {
2977
- type: 'string',
2978
- },
2979
- lastName: {
2980
- type: 'string',
2981
- },
2982
- gender: {
2983
- type: 'string',
2984
- enum: ['MALE', 'FEMALE', 'UNKNOWN'],
2985
- },
2986
- email: {
2987
- type: 'string',
2988
- },
2989
- phone: {
2990
- type: 'string',
2991
- },
2992
- contactMethods: {
2993
- type: 'array',
2994
- items: {
2995
- type: 'string',
2996
- enum: ['WHATSAPP', 'VIBER', 'PHONE_CALL'],
2997
- },
2998
- uniqueItems: true,
2999
- },
3000
- favoriteContactMethod: {
3001
- type: 'string',
3002
- enum: ['WHATSAPP', 'VIBER', 'PHONE_CALL'],
3003
- },
3004
- assignedTo: {
3005
- $ref: '#/components/schemas/AssignedAgent',
3006
- },
3007
- },
3008
- required: ['contactId', 'isActive', 'phone', 'type'],
3009
- };
3010
- export const PhoneDuplicateCheckResponseSchema = {
3011
- type: 'object',
3012
- properties: {
3013
- policy: {
3014
- type: 'string',
3015
- enum: ['ALLOW', 'WARN', 'PREVENT'],
3016
- },
3017
- matches: {
3018
- type: 'array',
3019
- items: {
3020
- $ref: '#/components/schemas/DuplicateContactInfo',
3021
- },
3022
- },
3023
- },
3024
- required: ['matches', 'policy'],
3025
- };
3026
- export const ClientInterestResponseSchema = {
2379
+ export const ConstantInterestResponseSchema = {
3027
2380
  type: 'object',
3028
2381
  properties: {
3029
2382
  id: {
@@ -3104,22 +2457,79 @@ export const ClientInterestResponseSchema = {
3104
2457
  region: {
3105
2458
  $ref: '#/components/schemas/LocationResponse',
3106
2459
  },
3107
- district: {
3108
- $ref: '#/components/schemas/LocationResponse',
2460
+ district: {
2461
+ $ref: '#/components/schemas/LocationResponse',
2462
+ },
2463
+ subDistrict: {
2464
+ $ref: '#/components/schemas/LocationResponse',
2465
+ },
2466
+ street: {
2467
+ $ref: '#/components/schemas/LocationResponse',
2468
+ },
2469
+ active: {
2470
+ type: 'boolean',
2471
+ },
2472
+ },
2473
+ required: ['active', 'id', 'listingType', 'propertyTypes'],
2474
+ };
2475
+ export const CommentViewSchema = {
2476
+ type: 'object',
2477
+ properties: {
2478
+ id: {
2479
+ type: 'string',
2480
+ format: 'uuid',
2481
+ },
2482
+ contactId: {
2483
+ type: 'integer',
2484
+ format: 'int64',
2485
+ },
2486
+ authorId: {
2487
+ type: 'string',
2488
+ format: 'uuid',
2489
+ },
2490
+ authorFirstName: {
2491
+ type: 'string',
2492
+ },
2493
+ authorLastName: {
2494
+ type: 'string',
2495
+ },
2496
+ body: {
2497
+ type: 'string',
2498
+ },
2499
+ createdAt: {
2500
+ type: 'string',
2501
+ format: 'date-time',
3109
2502
  },
3110
- subDistrict: {
3111
- $ref: '#/components/schemas/LocationResponse',
2503
+ editedAt: {
2504
+ type: 'string',
2505
+ format: 'date-time',
3112
2506
  },
3113
- street: {
3114
- $ref: '#/components/schemas/LocationResponse',
2507
+ },
2508
+ required: [
2509
+ 'authorFirstName',
2510
+ 'authorId',
2511
+ 'authorLastName',
2512
+ 'body',
2513
+ 'contactId',
2514
+ 'createdAt',
2515
+ 'id',
2516
+ ],
2517
+ };
2518
+ export const PagedModelCommentViewSchema = {
2519
+ type: 'object',
2520
+ properties: {
2521
+ content: {
2522
+ type: 'array',
2523
+ items: {
2524
+ $ref: '#/components/schemas/CommentView',
2525
+ },
3115
2526
  },
3116
- active: {
3117
- type: 'boolean',
2527
+ page: {
2528
+ $ref: '#/components/schemas/PageMetadata',
3118
2529
  },
3119
2530
  },
3120
- required: ['active', 'id', 'listingType', 'propertyTypes'],
3121
2531
  };
3122
- export const ClientGridResponseSchema = {
2532
+ export const ContactGridResponseSchema = {
3123
2533
  type: 'object',
3124
2534
  properties: {
3125
2535
  id: {
@@ -3130,29 +2540,42 @@ export const ClientGridResponseSchema = {
3130
2540
  type: 'string',
3131
2541
  format: 'uuid',
3132
2542
  },
3133
- leadId: {
3134
- type: 'integer',
3135
- format: 'int64',
3136
- },
3137
2543
  assignedTo: {
3138
2544
  $ref: '#/components/schemas/AssignedToResponse',
3139
2545
  },
3140
- contactFullName: {
2546
+ status: {
3141
2547
  type: 'string',
2548
+ enum: [
2549
+ 'NEW',
2550
+ 'ON_HOLD',
2551
+ 'COLD',
2552
+ 'WORM',
2553
+ 'HOT',
2554
+ 'WAITING_PAYMENT',
2555
+ 'LOST',
2556
+ 'CLOSED',
2557
+ ],
3142
2558
  },
3143
- contactPhoneNumber: {
2559
+ priority: {
2560
+ type: 'string',
2561
+ enum: ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW'],
2562
+ },
2563
+ contactName: {
3144
2564
  type: 'string',
3145
2565
  },
3146
- contactGender: {
2566
+ gender: {
3147
2567
  type: 'string',
3148
2568
  enum: ['MALE', 'FEMALE', 'UNKNOWN'],
3149
2569
  },
3150
- contactEmail: {
2570
+ phoneNumber: {
2571
+ type: 'string',
2572
+ },
2573
+ email: {
3151
2574
  type: 'string',
3152
2575
  },
3153
2576
  sourceType: {
3154
2577
  type: 'string',
3155
- enum: ['MY_HOME', 'SS', 'HOME_SPOT', 'UNKNOWN'],
2578
+ enum: ['MY_HOME', 'SS', 'HOME_SPOT', 'AGENCY_MEMBER', 'UNKNOWN'],
3156
2579
  },
3157
2580
  sourceLink: {
3158
2581
  type: 'string',
@@ -3163,39 +2586,31 @@ export const ClientGridResponseSchema = {
3163
2586
  isListing: {
3164
2587
  type: 'boolean',
3165
2588
  },
3166
- contactMethods: {
3167
- type: 'array',
3168
- items: {
3169
- type: 'string',
3170
- enum: ['WHATSAPP', 'VIBER', 'PHONE_CALL'],
3171
- },
3172
- uniqueItems: true,
3173
- },
3174
- favoriteContactMethod: {
2589
+ createdAt: {
3175
2590
  type: 'string',
3176
- enum: ['WHATSAPP', 'VIBER', 'PHONE_CALL'],
2591
+ format: 'date-time',
3177
2592
  },
3178
- priority: {
2593
+ updatedAt: {
3179
2594
  type: 'string',
3180
- enum: ['CRITICAL', 'HIGH', 'MEDIUM', 'LOW'],
2595
+ format: 'date-time',
3181
2596
  },
3182
2597
  },
3183
2598
  required: [
3184
- 'contactMethods',
3185
- 'contactPhoneNumber',
3186
- 'createdBy',
2599
+ 'createdAt',
3187
2600
  'id',
3188
2601
  'isListing',
3189
2602
  'isSearching',
2603
+ 'status',
2604
+ 'updatedAt',
3190
2605
  ],
3191
2606
  };
3192
- export const PagedModelClientGridResponseSchema = {
2607
+ export const PagedModelContactGridResponseSchema = {
3193
2608
  type: 'object',
3194
2609
  properties: {
3195
2610
  content: {
3196
2611
  type: 'array',
3197
2612
  items: {
3198
- $ref: '#/components/schemas/ClientGridResponse',
2613
+ $ref: '#/components/schemas/ContactGridResponse',
3199
2614
  },
3200
2615
  },
3201
2616
  page: {
@@ -3257,7 +2672,7 @@ export const AssignedMemberSchema = {
3257
2672
  export const Client360ResponseSchema = {
3258
2673
  type: 'object',
3259
2674
  properties: {
3260
- clientId: {
2675
+ contactId: {
3261
2676
  type: 'integer',
3262
2677
  format: 'int64',
3263
2678
  },
@@ -3265,7 +2680,7 @@ export const Client360ResponseSchema = {
3265
2680
  type: 'string',
3266
2681
  format: 'uuid',
3267
2682
  },
3268
- clientUserId: {
2683
+ contactUserId: {
3269
2684
  type: 'string',
3270
2685
  },
3271
2686
  createdBy: {
@@ -3305,19 +2720,19 @@ export const Client360ResponseSchema = {
3305
2720
  interests: {
3306
2721
  type: 'array',
3307
2722
  items: {
3308
- $ref: '#/components/schemas/ClientInterestResponse',
2723
+ $ref: '#/components/schemas/ConstantInterestResponse',
3309
2724
  },
3310
2725
  },
3311
2726
  properties: {
3312
2727
  type: 'array',
3313
2728
  items: {
3314
- $ref: '#/components/schemas/ClientPropertyResponse',
2729
+ $ref: '#/components/schemas/ContactPropertyResponse',
3315
2730
  },
3316
2731
  },
3317
2732
  },
3318
2733
  required: [
3319
2734
  'agencyId',
3320
- 'clientId',
2735
+ 'contactId',
3321
2736
  'contactInfo',
3322
2737
  'createdAt',
3323
2738
  'createdBy',
@@ -3329,7 +2744,60 @@ export const Client360ResponseSchema = {
3329
2744
  'updatedAt',
3330
2745
  ],
3331
2746
  };
3332
- export const ClientListingsResponseSchema = {
2747
+ export const ColoredListingResponseSchema = {
2748
+ type: 'object',
2749
+ properties: {
2750
+ activatedAt: {
2751
+ type: 'string',
2752
+ format: 'date',
2753
+ },
2754
+ expiresAt: {
2755
+ type: 'string',
2756
+ format: 'date',
2757
+ },
2758
+ },
2759
+ required: ['activatedAt', 'expiresAt'],
2760
+ };
2761
+ export const CommunicationPreferenceResponseSchema = {
2762
+ type: 'object',
2763
+ properties: {
2764
+ preferredContactMethod: {
2765
+ type: 'string',
2766
+ enum: ['WHATSAPP', 'VIBER', 'PHONE_CALL'],
2767
+ },
2768
+ contactMethods: {
2769
+ type: 'array',
2770
+ items: {
2771
+ type: 'string',
2772
+ enum: ['WHATSAPP', 'VIBER', 'PHONE_CALL'],
2773
+ },
2774
+ },
2775
+ },
2776
+ required: ['contactMethods'],
2777
+ };
2778
+ export const ContactInfoResponseSchema = {
2779
+ type: 'object',
2780
+ properties: {
2781
+ firstName: {
2782
+ type: 'string',
2783
+ },
2784
+ lastName: {
2785
+ type: 'string',
2786
+ },
2787
+ gender: {
2788
+ type: 'string',
2789
+ enum: ['MALE', 'FEMALE', 'UNKNOWN'],
2790
+ },
2791
+ phoneNumber: {
2792
+ type: 'string',
2793
+ },
2794
+ email: {
2795
+ type: 'string',
2796
+ },
2797
+ },
2798
+ required: ['gender', 'phoneNumber'],
2799
+ };
2800
+ export const ContactListingsResponseSchema = {
3333
2801
  type: 'object',
3334
2802
  properties: {
3335
2803
  publicId: {
@@ -3365,7 +2833,7 @@ export const ClientListingsResponseSchema = {
3365
2833
  'publicId',
3366
2834
  ],
3367
2835
  };
3368
- export const ClientPropertyResponseSchema = {
2836
+ export const ContactPropertyResponseSchema = {
3369
2837
  type: 'object',
3370
2838
  properties: {
3371
2839
  publicId: {
@@ -3420,7 +2888,7 @@ export const ClientPropertyResponseSchema = {
3420
2888
  listings: {
3421
2889
  type: 'array',
3422
2890
  items: {
3423
- $ref: '#/components/schemas/ClientListingsResponse',
2891
+ $ref: '#/components/schemas/ContactListingsResponse',
3424
2892
  },
3425
2893
  },
3426
2894
  },
@@ -3433,59 +2901,6 @@ export const ClientPropertyResponseSchema = {
3433
2901
  'type',
3434
2902
  ],
3435
2903
  };
3436
- export const ColoredListingResponseSchema = {
3437
- type: 'object',
3438
- properties: {
3439
- activatedAt: {
3440
- type: 'string',
3441
- format: 'date',
3442
- },
3443
- expiresAt: {
3444
- type: 'string',
3445
- format: 'date',
3446
- },
3447
- },
3448
- required: ['activatedAt', 'expiresAt'],
3449
- };
3450
- export const CommunicationPreferenceResponseSchema = {
3451
- type: 'object',
3452
- properties: {
3453
- preferredContactMethod: {
3454
- type: 'string',
3455
- enum: ['WHATSAPP', 'VIBER', 'PHONE_CALL'],
3456
- },
3457
- contactMethods: {
3458
- type: 'array',
3459
- items: {
3460
- type: 'string',
3461
- enum: ['WHATSAPP', 'VIBER', 'PHONE_CALL'],
3462
- },
3463
- },
3464
- },
3465
- required: ['contactMethods'],
3466
- };
3467
- export const ContactInfoResponseSchema = {
3468
- type: 'object',
3469
- properties: {
3470
- firstName: {
3471
- type: 'string',
3472
- },
3473
- lastName: {
3474
- type: 'string',
3475
- },
3476
- gender: {
3477
- type: 'string',
3478
- enum: ['MALE', 'FEMALE', 'UNKNOWN'],
3479
- },
3480
- phoneNumber: {
3481
- type: 'string',
3482
- },
3483
- email: {
3484
- type: 'string',
3485
- },
3486
- },
3487
- required: ['gender', 'phoneNumber'],
3488
- };
3489
2904
  export const DealResponseSchema = {
3490
2905
  type: 'object',
3491
2906
  properties: {
@@ -3576,7 +2991,7 @@ export const SourceResponseSchema = {
3576
2991
  properties: {
3577
2992
  sourceType: {
3578
2993
  type: 'string',
3579
- enum: ['MY_HOME', 'SS', 'HOME_SPOT', 'UNKNOWN'],
2994
+ enum: ['MY_HOME', 'SS', 'HOME_SPOT', 'AGENCY_MEMBER', 'UNKNOWN'],
3580
2995
  },
3581
2996
  sourceLink: {
3582
2997
  type: 'string',
@@ -3584,6 +2999,88 @@ export const SourceResponseSchema = {
3584
2999
  },
3585
3000
  required: ['sourceType'],
3586
3001
  };
3002
+ export const AssignedAgentSchema = {
3003
+ type: 'object',
3004
+ properties: {
3005
+ memberId: {
3006
+ type: 'string',
3007
+ format: 'uuid',
3008
+ },
3009
+ firstName: {
3010
+ type: 'string',
3011
+ },
3012
+ lastName: {
3013
+ type: 'string',
3014
+ },
3015
+ photo: {
3016
+ type: 'string',
3017
+ },
3018
+ phone: {
3019
+ type: 'string',
3020
+ },
3021
+ },
3022
+ required: ['firstName', 'lastName', 'memberId'],
3023
+ };
3024
+ export const DuplicateContactInfoSchema = {
3025
+ type: 'object',
3026
+ properties: {
3027
+ contactId: {
3028
+ type: 'integer',
3029
+ format: 'int64',
3030
+ },
3031
+ isActive: {
3032
+ type: 'boolean',
3033
+ },
3034
+ firstName: {
3035
+ type: 'string',
3036
+ },
3037
+ lastName: {
3038
+ type: 'string',
3039
+ },
3040
+ gender: {
3041
+ type: 'string',
3042
+ enum: ['MALE', 'FEMALE', 'UNKNOWN'],
3043
+ },
3044
+ email: {
3045
+ type: 'string',
3046
+ },
3047
+ phone: {
3048
+ type: 'string',
3049
+ },
3050
+ contactMethods: {
3051
+ type: 'array',
3052
+ items: {
3053
+ type: 'string',
3054
+ enum: ['WHATSAPP', 'VIBER', 'PHONE_CALL'],
3055
+ },
3056
+ uniqueItems: true,
3057
+ },
3058
+ favoriteContactMethod: {
3059
+ type: 'string',
3060
+ enum: ['WHATSAPP', 'VIBER', 'PHONE_CALL'],
3061
+ },
3062
+ assignedTo: {
3063
+ $ref: '#/components/schemas/AssignedAgent',
3064
+ },
3065
+ },
3066
+ required: ['contactId', 'isActive', 'phone'],
3067
+ };
3068
+ export const PhoneDuplicateCheckResponseSchema = {
3069
+ type: 'object',
3070
+ properties: {
3071
+ policy: {
3072
+ type: 'string',
3073
+ enum: ['ALLOW', 'WARN', 'PREVENT'],
3074
+ },
3075
+ matches: {
3076
+ type: 'array',
3077
+ items: {
3078
+ $ref: '#/components/schemas/DuplicateContactInfo',
3079
+ },
3080
+ },
3081
+ },
3082
+ required: ['matches', 'policy'],
3083
+ };
3587
3084
  export const AddressViewResponseSchema = {
3588
3085
  type: 'object',
3589
3086
  properties: {