@homespot-sdk/core 0.0.225 → 0.0.227

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/property/index.d.ts +1 -1
  2. package/dist/property/index.d.ts.map +1 -1
  3. package/dist/property/schemas.gen.d.ts +44 -58
  4. package/dist/property/schemas.gen.d.ts.map +1 -1
  5. package/dist/property/schemas.gen.js +246 -121
  6. package/dist/property/schemas.gen.js.map +1 -1
  7. package/dist/property/types.gen.d.ts +29 -38
  8. package/dist/property/types.gen.d.ts.map +1 -1
  9. package/dist/property/zod.gen.d.ts +448 -538
  10. package/dist/property/zod.gen.d.ts.map +1 -1
  11. package/dist/property/zod.gen.js +440 -243
  12. package/dist/property/zod.gen.js.map +1 -1
  13. package/dist/registration/index.d.ts +1 -1
  14. package/dist/registration/index.d.ts.map +1 -1
  15. package/dist/registration/schemas.gen.d.ts +28 -43
  16. package/dist/registration/schemas.gen.d.ts.map +1 -1
  17. package/dist/registration/schemas.gen.js +148 -82
  18. package/dist/registration/schemas.gen.js.map +1 -1
  19. package/dist/registration/types.gen.d.ts +20 -27
  20. package/dist/registration/types.gen.d.ts.map +1 -1
  21. package/dist/registration/zod.gen.d.ts +106 -175
  22. package/dist/registration/zod.gen.d.ts.map +1 -1
  23. package/dist/registration/zod.gen.js +204 -144
  24. package/dist/registration/zod.gen.js.map +1 -1
  25. package/dist/rem/index.d.ts +1 -1
  26. package/dist/rem/index.d.ts.map +1 -1
  27. package/dist/rem/schemas.gen.d.ts +159 -190
  28. package/dist/rem/schemas.gen.d.ts.map +1 -1
  29. package/dist/rem/schemas.gen.js +461 -271
  30. package/dist/rem/schemas.gen.js.map +1 -1
  31. package/dist/rem/types.gen.d.ts +105 -132
  32. package/dist/rem/types.gen.d.ts.map +1 -1
  33. package/dist/rem/zod.gen.d.ts +1338 -1534
  34. package/dist/rem/zod.gen.d.ts.map +1 -1
  35. package/dist/rem/zod.gen.js +1104 -844
  36. package/dist/rem/zod.gen.js.map +1 -1
  37. package/package.json +1 -1
@@ -13,6 +13,29 @@ export const zThemeRequest = z.object({
13
13
  error: 'Invalid value: Expected int32 to be <= 2147483647',
14
14
  }),
15
15
  });
16
+ export const zSocialMediaRequest = z.object({
17
+ type: z.enum(['FACEBOOK', 'YOUTUBE', 'INSTAGRAM', 'TIKTOK', 'LINKEDIN']),
18
+ url: z.optional(z.string()),
19
+ });
20
+ export const zSocialMediasRequest = z.object({
21
+ data: z.array(zSocialMediaRequest).min(1).max(6),
22
+ });
23
+ export const zTextRequest = z.object({
24
+ language: z.enum(['ka', 'en', 'ru']),
25
+ text: z.optional(z.string()),
26
+ });
27
+ export const zMultiLangTextRequest = z.object({
28
+ data: z.array(zTextRequest).min(1).max(3),
29
+ });
30
+ export const zWhitelabelSectionRequest = z.object({
31
+ title: zMultiLangTextRequest,
32
+ body: zMultiLangTextRequest,
33
+ });
34
+ export const zWhitelabelReviewRequest = z.object({
35
+ quote: zMultiLangTextRequest,
36
+ name: zMultiLangTextRequest,
37
+ status: zMultiLangTextRequest,
38
+ });
16
39
  export const zEstablishedYearRequest = z.object({
17
40
  year: z
18
41
  .int()
@@ -40,6 +63,28 @@ export const zVerifyEmailRequest = z.object({
40
63
  export const zUpdateEmailRequest = z.object({
41
64
  email: z.email().min(1),
42
65
  });
66
+ export const zRolesRequest = z.object({
67
+ name: z.string().min(1),
68
+ description: z.string().min(1),
69
+ permissions: z.array(z.enum([
70
+ 'AGENCY_WRITE',
71
+ 'INVITATION_READ',
72
+ 'INVITATION_WRITE',
73
+ 'ROLE_READ',
74
+ 'ROLE_WRITE',
75
+ 'MEMBER_READ',
76
+ 'MEMBER_WRITE',
77
+ 'LEAD_READ',
78
+ 'LEAD_WRITE',
79
+ 'LEAD_READ_ALL',
80
+ 'LEAD_WRITE_ALL',
81
+ 'CLIENT_READ',
82
+ 'CLIENT_WRITE',
83
+ 'CLIENT_READ_ALL',
84
+ 'CLIENT_WRITE_ALL',
85
+ 'PROPERTY_READ_ALL',
86
+ ])),
87
+ });
43
88
  export const zAssignRoleRequest = z.object({
44
89
  roleId: z
45
90
  .int()
@@ -71,6 +116,19 @@ export const zRecordSourceRequest = z.object({
71
116
  export const zNoteRequest = z.object({
72
117
  note: z.optional(z.string()),
73
118
  });
119
+ export const zRecordLostLeadRequest = z.object({
120
+ reason: z.enum([
121
+ 'NOT_WORKING_WITH_AGENTS',
122
+ 'NOT_RESPONDING',
123
+ 'ALREADY_SOLD',
124
+ 'COULD_NOT_NEGOTIATE_PRICE',
125
+ 'CHOSE_ANOTHER_AGENCY',
126
+ 'CHANGED_PLANS',
127
+ 'OUT_OF_BUDGET',
128
+ 'SPAM',
129
+ 'OTHER',
130
+ ]),
131
+ });
74
132
  export const zLocationRefRequest = z.object({
75
133
  regionId: z.optional(z.coerce
76
134
  .bigint()
@@ -109,12 +167,133 @@ export const zPriceRangeRequest = z.object({
109
167
  min: z.optional(z.number()),
110
168
  max: z.optional(z.number()),
111
169
  });
170
+ export const zIntentRequest = z.object({
171
+ clientType: z.enum(['LISTING', 'SEEKING']),
172
+ listingType: z.enum(['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE']),
173
+ propertyType: z.enum([
174
+ 'HOUSE',
175
+ 'TOWN_HOUSE',
176
+ 'COUNTRY_HOUSE',
177
+ 'VILLA',
178
+ 'COTTAGE',
179
+ 'APARTMENT',
180
+ 'DUPLEX',
181
+ 'TRIPLEX',
182
+ 'SEMI_BASEMENT',
183
+ 'ATTIC',
184
+ 'AGRICULTURAL_LAND',
185
+ 'RESIDENTIAL_LAND',
186
+ 'HOTEL_ROOM',
187
+ 'MOTEL_ROOM',
188
+ 'CO_LIVING_SPACE',
189
+ 'OFFICE',
190
+ 'COMMERCIAL_SPACE',
191
+ 'CO_WORKING_SPACE',
192
+ 'WAREHOUSE',
193
+ 'GARAGE',
194
+ ]),
195
+ price: z.optional(zPriceRangeRequest),
196
+ targetLocation: z.optional(zLocationRefRequest),
197
+ area: z.optional(z.number()),
198
+ numberOfRooms: z.optional(z
199
+ .int()
200
+ .min(-2147483648, {
201
+ error: 'Invalid value: Expected int32 to be >= -2147483648',
202
+ })
203
+ .max(2147483647, {
204
+ error: 'Invalid value: Expected int32 to be <= 2147483647',
205
+ })),
206
+ });
207
+ export const zContactInfoRequest = z.object({
208
+ firstName: z.optional(z.string().min(1).max(20)),
209
+ lastName: z.optional(z.string().min(1).max(20)),
210
+ gender: z.optional(z.enum(['MALE', 'FEMALE', 'UNKNOWN'])),
211
+ email: z.optional(z.email()),
212
+ phone: z.string().min(1).max(20),
213
+ });
112
214
  export const zReassignMemberRequest = z.object({
113
215
  memberId: z.uuid(),
114
216
  });
115
217
  export const zRenameClientRecommendationsRequest = z.object({
116
218
  name: z.optional(z.string()),
117
219
  });
220
+ export const zAgreementRequest = z.object({
221
+ type: z.enum(['EXCLUSIVE', 'NON_EXCLUSIVE']),
222
+ expiresAt: z.optional(z.iso.date()),
223
+ });
224
+ export const zReprioritizeClientRequest = z.object({
225
+ priority: z.optional(z.enum(['CRITICAL', 'HIGH', 'MEDIUM', 'LOW'])),
226
+ });
227
+ export const zCaptureInterestRequest = z.object({
228
+ propertyTypes: z
229
+ .array(z.enum([
230
+ 'HOUSE',
231
+ 'TOWN_HOUSE',
232
+ 'COUNTRY_HOUSE',
233
+ 'VILLA',
234
+ 'COTTAGE',
235
+ 'APARTMENT',
236
+ 'DUPLEX',
237
+ 'TRIPLEX',
238
+ 'SEMI_BASEMENT',
239
+ 'ATTIC',
240
+ 'AGRICULTURAL_LAND',
241
+ 'RESIDENTIAL_LAND',
242
+ 'HOTEL_ROOM',
243
+ 'MOTEL_ROOM',
244
+ 'CO_LIVING_SPACE',
245
+ 'OFFICE',
246
+ 'COMMERCIAL_SPACE',
247
+ 'CO_WORKING_SPACE',
248
+ 'WAREHOUSE',
249
+ 'GARAGE',
250
+ ]))
251
+ .min(1),
252
+ listingType: z.enum(['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE']),
253
+ priceMin: z.optional(z.number()),
254
+ priceMax: z.optional(z.number()),
255
+ bedroomsMin: z.optional(z
256
+ .int()
257
+ .min(-2147483648, {
258
+ error: 'Invalid value: Expected int32 to be >= -2147483648',
259
+ })
260
+ .max(2147483647, {
261
+ error: 'Invalid value: Expected int32 to be <= 2147483647',
262
+ })),
263
+ bedroomsMax: z.optional(z
264
+ .int()
265
+ .min(-2147483648, {
266
+ error: 'Invalid value: Expected int32 to be >= -2147483648',
267
+ })
268
+ .max(2147483647, {
269
+ error: 'Invalid value: Expected int32 to be <= 2147483647',
270
+ })),
271
+ bathroomsMin: z.optional(z
272
+ .int()
273
+ .min(-2147483648, {
274
+ error: 'Invalid value: Expected int32 to be >= -2147483648',
275
+ })
276
+ .max(2147483647, {
277
+ error: 'Invalid value: Expected int32 to be <= 2147483647',
278
+ })),
279
+ bathroomsMax: z.optional(z
280
+ .int()
281
+ .min(-2147483648, {
282
+ error: 'Invalid value: Expected int32 to be >= -2147483648',
283
+ })
284
+ .max(2147483647, {
285
+ error: 'Invalid value: Expected int32 to be <= 2147483647',
286
+ })),
287
+ totalAreaMin: z.optional(z.number()),
288
+ totalAreaMax: z.optional(z.number()),
289
+ livingAreaMin: z.optional(z.number()),
290
+ livingAreaMax: z.optional(z.number()),
291
+ location: z.optional(zLocationRefRequest),
292
+ });
293
+ export const zUpdateContactPreferencesRequest = z.object({
294
+ contactMethods: z.array(z.enum(['WHATSAPP', 'VIBER', 'PHONE_CALL'])),
295
+ favoriteContactMethod: z.optional(z.enum(['WHATSAPP', 'VIBER', 'PHONE_CALL'])),
296
+ });
118
297
  export const zAddressRequest = z.object({
119
298
  country: z.string().min(0).max(100),
120
299
  city: z.string().min(0).max(100),
@@ -137,6 +316,12 @@ export const zCreateAgencyRequest = z.object({
137
316
  phone: z.string(),
138
317
  address: zAddressRequest,
139
318
  });
319
+ export const zPhotoRequest = z.object({
320
+ photo: z.string().min(0).max(255),
321
+ type: z.enum(['JPEG', 'JPG', 'PNG', 'WEBP']),
322
+ width: z.int().gte(10).lte(11000),
323
+ height: z.optional(z.int().gte(10).lte(11000)),
324
+ });
140
325
  export const zPresignedUrlResponse = z.object({
141
326
  originalName: z.string(),
142
327
  key: z.string(),
@@ -166,6 +351,46 @@ export const zIdResponseInteger = z.object({
166
351
  error: 'Invalid value: Expected int32 to be <= 2147483647',
167
352
  }),
168
353
  });
354
+ export const zCaptureLeadRequest = z.object({
355
+ contactInfo: zContactInfoRequest,
356
+ note: z.optional(z.string().min(0).max(500)),
357
+ });
358
+ export const zRateRecommendationItemRequest = z.object({
359
+ decision: z.enum(['MAYBE', 'DISLIKE', 'LIKE', 'VISIT']),
360
+ note: z.optional(z.string().min(0).max(100)),
361
+ });
362
+ export const zAttendeeRequest = z.object({
363
+ role: z.enum(['ORGANIZER', 'AGENT', 'OWNER', 'CLIENT']),
364
+ memberId: z.optional(z.uuid()),
365
+ clientId: z.optional(z.coerce
366
+ .bigint()
367
+ .min(BigInt('-9223372036854775808'), {
368
+ error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
369
+ })
370
+ .max(BigInt('9223372036854775807'), {
371
+ error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
372
+ })),
373
+ email: z.optional(z.email()),
374
+ name: z.optional(z.string()),
375
+ });
376
+ export const zCreateMeetingRequest = z.object({
377
+ propertyId: z.optional(z.coerce
378
+ .bigint()
379
+ .min(BigInt('-9223372036854775808'), {
380
+ error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
381
+ })
382
+ .max(BigInt('9223372036854775807'), {
383
+ error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
384
+ })),
385
+ attendees: z.array(zAttendeeRequest).min(0).max(10),
386
+ start: z.iso.datetime(),
387
+ durationMinutes: z.optional(z.int().gte(15).lte(480)),
388
+ title: z.string().min(0).max(255),
389
+ description: z.optional(z.string().min(0).max(1000)),
390
+ location: z.optional(z.string().min(0).max(500)),
391
+ inviteStrategy: z.enum(['NONE', 'AGENT_ONLY', 'ALL_PARTICIPANTS']),
392
+ setReminders: z.optional(z.boolean()),
393
+ });
169
394
  export const zMeetingResponse = z.object({
170
395
  meetingId: z.uuid(),
171
396
  googleEventId: z.optional(z.string()),
@@ -203,6 +428,50 @@ export const zAuthRequest = z.object({
203
428
  sub: z.optional(z.string()),
204
429
  agencyId: z.optional(z.uuid()),
205
430
  });
431
+ export const zAgencyPrincipalDto = z.object({
432
+ memberId: z.optional(z.uuid()),
433
+ permissions: z.optional(z.array(z.enum([
434
+ 'AGENCY_WRITE',
435
+ 'INVITATION_READ',
436
+ 'INVITATION_WRITE',
437
+ 'ROLE_READ',
438
+ 'ROLE_WRITE',
439
+ 'MEMBER_READ',
440
+ 'MEMBER_WRITE',
441
+ 'LEAD_READ',
442
+ 'LEAD_WRITE',
443
+ 'LEAD_READ_ALL',
444
+ 'LEAD_WRITE_ALL',
445
+ 'CLIENT_READ',
446
+ 'CLIENT_WRITE',
447
+ 'CLIENT_READ_ALL',
448
+ 'CLIENT_WRITE_ALL',
449
+ 'PROPERTY_READ_ALL',
450
+ ]))),
451
+ isActive: z.optional(z.boolean()),
452
+ isOwner: z.optional(z.boolean()),
453
+ });
454
+ export const zOnboardClientRequest = z.object({
455
+ contactInfo: zContactInfoRequest,
456
+ contactMethods: z.array(z.enum(['WHATSAPP', 'VIBER', 'PHONE_CALL'])),
457
+ favoriteContactMethod: z.optional(z.enum(['WHATSAPP', 'VIBER', 'PHONE_CALL'])),
458
+ priority: z.optional(z.enum(['CRITICAL', 'HIGH', 'MEDIUM', 'LOW'])),
459
+ convertedFromLeadId: z.optional(z.coerce
460
+ .bigint()
461
+ .min(BigInt('-9223372036854775808'), {
462
+ error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
463
+ })
464
+ .max(BigInt('9223372036854775807'), {
465
+ error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
466
+ })),
467
+ });
468
+ export const zContactSummary = z.object({
469
+ firstName: z.optional(z.string()),
470
+ lastName: z.optional(z.string()),
471
+ gender: z.optional(z.enum(['MALE', 'FEMALE', 'UNKNOWN'])),
472
+ email: z.optional(z.string()),
473
+ phone: z.optional(z.string()),
474
+ });
206
475
  export const zCoordinates = z.object({
207
476
  lat: z.optional(z.number()),
208
477
  lng: z.optional(z.number()),
@@ -256,85 +525,277 @@ export const zPresignedResult = z.object({
256
525
  key: z.optional(zPhotoKey),
257
526
  presignedUrl: z.optional(z.string()),
258
527
  });
259
- export const zCreateClientRecommendationsRequest = z.object({
260
- title: z.string().min(1),
261
- interestId: z.coerce
528
+ export const zPropertyCreationRequest = z.object({
529
+ draftId: z.uuid(),
530
+ clientId: z.optional(z.coerce
262
531
  .bigint()
263
532
  .min(BigInt('-9223372036854775808'), {
264
533
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
265
534
  })
266
535
  .max(BigInt('9223372036854775807'), {
267
536
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
268
- }),
269
- });
270
- export const zRecommendationsId = z.object({
271
- value: z.optional(z.uuid()),
537
+ })),
538
+ propertyType: z.enum([
539
+ 'HOUSE',
540
+ 'TOWN_HOUSE',
541
+ 'COUNTRY_HOUSE',
542
+ 'VILLA',
543
+ 'COTTAGE',
544
+ 'APARTMENT',
545
+ 'DUPLEX',
546
+ 'TRIPLEX',
547
+ 'SEMI_BASEMENT',
548
+ 'ATTIC',
549
+ 'AGRICULTURAL_LAND',
550
+ 'RESIDENTIAL_LAND',
551
+ 'HOTEL_ROOM',
552
+ 'MOTEL_ROOM',
553
+ 'CO_LIVING_SPACE',
554
+ 'OFFICE',
555
+ 'COMMERCIAL_SPACE',
556
+ 'CO_WORKING_SPACE',
557
+ 'WAREHOUSE',
558
+ 'GARAGE',
559
+ ]),
560
+ address: zAddressRef,
561
+ photoUrls: z.array(zPhotoInternalRequest).min(5).max(2147483647),
562
+ spaces: z.record(z.string(), z.array(z.number())),
563
+ totalArea: z.number(),
564
+ livingArea: z.optional(z.number()),
565
+ balconyArea: z.optional(z.number()),
566
+ amenities: z.array(z
567
+ .int()
568
+ .min(-2147483648, {
569
+ error: 'Invalid value: Expected int32 to be >= -2147483648',
570
+ })
571
+ .max(2147483647, {
572
+ error: 'Invalid value: Expected int32 to be <= 2147483647',
573
+ })),
574
+ title: z.string().min(1),
575
+ description: z.record(z.string(), z.string()),
272
576
  });
273
- export const zRecommendListingRequest = z.object({
274
- externalPropertyId: z.uuid(),
275
- externalListingId: z.uuid(),
577
+ export const zImportedPropertyDraft = z.object({
578
+ contact: z.optional(zContactSummary),
579
+ listingType: z.optional(z.enum(['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE'])),
580
+ askingPrice: z.optional(z.number()),
581
+ propertyCreationRequest: z.optional(zPropertyCreationRequest),
582
+ photosForUpload: z.optional(z.array(zPresignedResult)),
276
583
  });
277
- export const zInterestId = z.object({
278
- value: z.optional(z.coerce
584
+ export const zClientOnboardedResponse = z.object({
585
+ clientId: z.coerce
279
586
  .bigint()
280
587
  .min(BigInt('-9223372036854775808'), {
281
588
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
282
589
  })
283
590
  .max(BigInt('9223372036854775807'), {
284
591
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
285
- })),
286
- });
287
- export const zIdResponseUuid = z.object({
288
- id: z.uuid(),
289
- });
290
- export const zUserSummaryViewResponse = z.object({
291
- email: z.string(),
292
- firstName: z.string(),
293
- lastName: z.string(),
592
+ }),
593
+ importedProperty: z.optional(zImportedPropertyDraft),
294
594
  });
295
- export const zPageMetadata = z.object({
296
- size: z.optional(z.coerce
595
+ export const zCreateClientRecommendationsRequest = z.object({
596
+ title: z.string().min(1),
597
+ interestId: z.coerce
297
598
  .bigint()
298
599
  .min(BigInt('-9223372036854775808'), {
299
600
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
300
601
  })
301
602
  .max(BigInt('9223372036854775807'), {
302
603
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
303
- })),
304
- number: z.optional(z.coerce
604
+ }),
605
+ });
606
+ export const zRecommendationsId = z.object({
607
+ value: z.optional(z.uuid()),
608
+ });
609
+ export const zRecommendListingRequest = z.object({
610
+ externalPropertyId: z.uuid(),
611
+ externalListingId: z.uuid(),
612
+ });
613
+ export const zExternalListingPublishRequest = z.object({
614
+ platform: z.enum(['SS', 'MY_HOME']),
615
+ listingId: z.coerce
305
616
  .bigint()
306
617
  .min(BigInt('-9223372036854775808'), {
307
618
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
308
619
  })
309
620
  .max(BigInt('9223372036854775807'), {
310
621
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
311
- })),
312
- totalElements: z.optional(z.coerce
622
+ }),
623
+ });
624
+ export const zExternalListingBoostRequest = z.object({
625
+ platform: z.enum(['SS', 'MY_HOME']),
626
+ listingId: z.coerce
313
627
  .bigint()
314
628
  .min(BigInt('-9223372036854775808'), {
315
629
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
316
630
  })
317
631
  .max(BigInt('9223372036854775807'), {
318
632
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
319
- })),
320
- totalPages: z.optional(z.coerce
633
+ }),
634
+ tier: z.enum(['VIP', 'VIP_PLUS', 'SUPER_VIP']),
635
+ numberOfDays: z
636
+ .int()
637
+ .min(-2147483648, {
638
+ error: 'Invalid value: Expected int32 to be >= -2147483648',
639
+ })
640
+ .max(2147483647, {
641
+ error: 'Invalid value: Expected int32 to be <= 2147483647',
642
+ }),
643
+ });
644
+ export const zAddDealRequest = z.object({
645
+ listingId: z.coerce
321
646
  .bigint()
322
647
  .min(BigInt('-9223372036854775808'), {
323
648
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
324
649
  })
325
650
  .max(BigInt('9223372036854775807'), {
326
651
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
327
- })),
652
+ }),
653
+ commissionType: z.enum([
654
+ 'FIXED_SALE',
655
+ 'FIXED_RENT',
656
+ 'PERCENTAGE',
657
+ 'MONTHS_OF_RENT',
658
+ ]),
659
+ rate: z.optional(z.number()),
660
+ amount: z.optional(z.number()),
661
+ factor: z.optional(z.number()),
328
662
  });
329
- export const zAddressResponse = z.object({
330
- regionId: z.coerce
663
+ export const zInterestId = z.object({
664
+ value: z.optional(z.coerce
331
665
  .bigint()
332
666
  .min(BigInt('-9223372036854775808'), {
333
667
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
334
668
  })
335
669
  .max(BigInt('9223372036854775807'), {
336
670
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
337
- }),
671
+ })),
672
+ });
673
+ export const zIdResponseUuid = z.object({
674
+ id: z.uuid(),
675
+ });
676
+ export const zOrganizationSummaryViewResponse = z.object({
677
+ agencyId: z.uuid(),
678
+ isOwner: z.boolean(),
679
+ agencyName: z.string(),
680
+ subdomain: z.string(),
681
+ roleId: z.optional(z
682
+ .int()
683
+ .min(-2147483648, {
684
+ error: 'Invalid value: Expected int32 to be >= -2147483648',
685
+ })
686
+ .max(2147483647, {
687
+ error: 'Invalid value: Expected int32 to be <= 2147483647',
688
+ })),
689
+ memberId: z.uuid(),
690
+ roleName: z.string(),
691
+ permissions: z.array(z.enum([
692
+ 'AGENCY_WRITE',
693
+ 'INVITATION_READ',
694
+ 'INVITATION_WRITE',
695
+ 'ROLE_READ',
696
+ 'ROLE_WRITE',
697
+ 'MEMBER_READ',
698
+ 'MEMBER_WRITE',
699
+ 'LEAD_READ',
700
+ 'LEAD_WRITE',
701
+ 'LEAD_READ_ALL',
702
+ 'LEAD_WRITE_ALL',
703
+ 'CLIENT_READ',
704
+ 'CLIENT_WRITE',
705
+ 'CLIENT_READ_ALL',
706
+ 'CLIENT_WRITE_ALL',
707
+ 'PROPERTY_READ_ALL',
708
+ ])),
709
+ status: z.enum(['NEW', 'ACTIVE', 'PAYMENT_FAILED', 'INACTIVE']),
710
+ });
711
+ export const zUserSummaryViewResponse = z.object({
712
+ email: z.string(),
713
+ firstName: z.string(),
714
+ lastName: z.string(),
715
+ });
716
+ export const zUserContextViewResponse = z.object({
717
+ user: zUserSummaryViewResponse,
718
+ organizations: z.array(zOrganizationSummaryViewResponse),
719
+ });
720
+ export const zPageMetadata = z.object({
721
+ size: z.optional(z.coerce
722
+ .bigint()
723
+ .min(BigInt('-9223372036854775808'), {
724
+ error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
725
+ })
726
+ .max(BigInt('9223372036854775807'), {
727
+ error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
728
+ })),
729
+ number: z.optional(z.coerce
730
+ .bigint()
731
+ .min(BigInt('-9223372036854775808'), {
732
+ error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
733
+ })
734
+ .max(BigInt('9223372036854775807'), {
735
+ error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
736
+ })),
737
+ totalElements: z.optional(z.coerce
738
+ .bigint()
739
+ .min(BigInt('-9223372036854775808'), {
740
+ error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
741
+ })
742
+ .max(BigInt('9223372036854775807'), {
743
+ error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
744
+ })),
745
+ totalPages: z.optional(z.coerce
746
+ .bigint()
747
+ .min(BigInt('-9223372036854775808'), {
748
+ error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
749
+ })
750
+ .max(BigInt('9223372036854775807'), {
751
+ error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
752
+ })),
753
+ });
754
+ export const zRoleResponse = z.object({
755
+ id: z
756
+ .int()
757
+ .min(-2147483648, {
758
+ error: 'Invalid value: Expected int32 to be >= -2147483648',
759
+ })
760
+ .max(2147483647, {
761
+ error: 'Invalid value: Expected int32 to be <= 2147483647',
762
+ }),
763
+ name: z.string(),
764
+ isSystem: z.optional(z.boolean()),
765
+ isOwner: z.optional(z.boolean()),
766
+ description: z.string(),
767
+ permissions: z.array(z.enum([
768
+ 'AGENCY_WRITE',
769
+ 'INVITATION_READ',
770
+ 'INVITATION_WRITE',
771
+ 'ROLE_READ',
772
+ 'ROLE_WRITE',
773
+ 'MEMBER_READ',
774
+ 'MEMBER_WRITE',
775
+ 'LEAD_READ',
776
+ 'LEAD_WRITE',
777
+ 'LEAD_READ_ALL',
778
+ 'LEAD_WRITE_ALL',
779
+ 'CLIENT_READ',
780
+ 'CLIENT_WRITE',
781
+ 'CLIENT_READ_ALL',
782
+ 'CLIENT_WRITE_ALL',
783
+ 'PROPERTY_READ_ALL',
784
+ ])),
785
+ });
786
+ export const zPagedModelRoleResponse = z.object({
787
+ content: z.optional(z.array(zRoleResponse)),
788
+ page: z.optional(zPageMetadata),
789
+ });
790
+ export const zAddressResponse = z.object({
791
+ regionId: z.coerce
792
+ .bigint()
793
+ .min(BigInt('-9223372036854775808'), {
794
+ error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
795
+ })
796
+ .max(BigInt('9223372036854775807'), {
797
+ error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
798
+ }),
338
799
  districtId: z.coerce
339
800
  .bigint()
340
801
  .min(BigInt('-9223372036854775808'), {
@@ -363,87 +824,67 @@ export const zAddressResponse = z.object({
363
824
  lat: z.number(),
364
825
  lng: z.number(),
365
826
  });
366
- export const zAgencyContactInfoResponse = z.object({
367
- phone: z.string(),
368
- email: z.string(),
369
- address: z.optional(z.string()),
370
- });
371
- export const zAgencyStatsResponse = z.object({
372
- membersCount: z
373
- .int()
374
- .min(-2147483648, {
375
- error: 'Invalid value: Expected int32 to be >= -2147483648',
376
- })
377
- .max(2147483647, {
378
- error: 'Invalid value: Expected int32 to be <= 2147483647',
379
- }),
380
- listingCount: z
381
- .int()
382
- .min(-2147483648, {
383
- error: 'Invalid value: Expected int32 to be >= -2147483648',
827
+ export const zRecommendationsCardView = z.object({
828
+ recommendationItemId: z.coerce
829
+ .bigint()
830
+ .min(BigInt('-9223372036854775808'), {
831
+ error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
384
832
  })
385
- .max(2147483647, {
386
- error: 'Invalid value: Expected int32 to be <= 2147483647',
833
+ .max(BigInt('9223372036854775807'), {
834
+ error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
387
835
  }),
388
- operatingSince: z
389
- .int()
390
- .min(-2147483648, {
391
- error: 'Invalid value: Expected int32 to be >= -2147483648',
836
+ decision: z.optional(z.enum(['MAYBE', 'DISLIKE', 'LIKE', 'VISIT'])),
837
+ clientNote: z.optional(z.string()),
838
+ ownerClientId: z.coerce
839
+ .bigint()
840
+ .min(BigInt('-9223372036854775808'), {
841
+ error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
392
842
  })
393
- .max(2147483647, {
394
- error: 'Invalid value: Expected int32 to be <= 2147483647',
843
+ .max(BigInt('9223372036854775807'), {
844
+ error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
395
845
  }),
396
- });
397
- export const zMemberResponse = z.object({
398
- memberId: z.uuid(),
399
- firstName: z.string(),
400
- lastName: z.string(),
401
- phone: z.optional(z.string()),
402
- email: z.string(),
403
- profilePictureUrl: z.optional(z.string()),
404
- });
405
- export const zMemberViewResponse = z.object({
406
- userId: z.string(),
407
- firstName: z.string(),
408
- lastName: z.string(),
409
- profilePictureUrl: z.optional(z.string()),
410
- phone: z.optional(z.string()),
411
- email: z.string(),
412
- roleId: z
413
- .int()
414
- .min(-2147483648, {
415
- error: 'Invalid value: Expected int32 to be >= -2147483648',
846
+ listingId: z.coerce
847
+ .bigint()
848
+ .min(BigInt('-9223372036854775808'), {
849
+ error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
416
850
  })
417
- .max(2147483647, {
418
- error: 'Invalid value: Expected int32 to be <= 2147483647',
851
+ .max(BigInt('9223372036854775807'), {
852
+ error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
419
853
  }),
420
- roleName: z.string(),
421
- joinedAt: z.iso.datetime(),
422
- });
423
- export const zGroupCount = z.object({
424
- groupKey: z.optional(z.string()),
425
- label: z.optional(z.string()),
426
- count: z.optional(z.coerce
854
+ externalListingId: z.uuid(),
855
+ listingType: z.enum(['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE']),
856
+ price: z.number(),
857
+ propertyId: z.coerce
427
858
  .bigint()
428
859
  .min(BigInt('-9223372036854775808'), {
429
860
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
430
861
  })
431
862
  .max(BigInt('9223372036854775807'), {
432
863
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
433
- })),
434
- });
435
- export const zAssignedMember = z.object({
436
- memberId: z.uuid(),
437
- name: z.string(),
438
- phone: z.string(),
439
- email: z.string(),
440
- });
441
- export const zColoredListingResponse = z.object({
442
- activatedAt: z.iso.date(),
443
- expiresAt: z.iso.date(),
444
- });
445
- export const zPropertyDetailsResponse = z.object({
446
- title: z.string(),
864
+ }),
865
+ externalPropertyId: z.uuid(),
866
+ type: z.enum([
867
+ 'HOUSE',
868
+ 'TOWN_HOUSE',
869
+ 'COUNTRY_HOUSE',
870
+ 'VILLA',
871
+ 'COTTAGE',
872
+ 'APARTMENT',
873
+ 'DUPLEX',
874
+ 'TRIPLEX',
875
+ 'SEMI_BASEMENT',
876
+ 'ATTIC',
877
+ 'AGRICULTURAL_LAND',
878
+ 'RESIDENTIAL_LAND',
879
+ 'HOTEL_ROOM',
880
+ 'MOTEL_ROOM',
881
+ 'CO_LIVING_SPACE',
882
+ 'OFFICE',
883
+ 'COMMERCIAL_SPACE',
884
+ 'CO_WORKING_SPACE',
885
+ 'WAREHOUSE',
886
+ 'GARAGE',
887
+ ]),
447
888
  coverPhoto: z.optional(z.string()),
448
889
  photoCount: z.optional(z
449
890
  .int()
@@ -458,32 +899,16 @@ export const zPropertyDetailsResponse = z.object({
458
899
  balconyArea: z.optional(z.number()),
459
900
  address: zAddressResponse,
460
901
  });
461
- export const zAddressViewResponse = z.object({
462
- country: z.string(),
463
- city: z.string(),
464
- district: z.string(),
465
- subdistrict: z.string(),
466
- street: z.string(),
467
- });
468
- export const zAgencyProfileResponse = z.object({
469
- name: z.string(),
470
- email: z.string(),
471
- seats: z
472
- .int()
473
- .min(-2147483648, {
474
- error: 'Invalid value: Expected int32 to be >= -2147483648',
475
- })
476
- .max(2147483647, {
477
- error: 'Invalid value: Expected int32 to be <= 2147483647',
478
- }),
479
- subdomain: z.string(),
480
- phone: z.string(),
481
- address: zAddressViewResponse,
902
+ export const zPagedModelRecommendationsCardView = z.object({
903
+ content: z.optional(z.array(zRecommendationsCardView)),
904
+ page: z.optional(zPageMetadata),
482
905
  });
483
- export const zSchemaEnum = z.enum(['MAYBE', 'DISLIKE', 'LIKE', 'VISIT']);
484
- export const zRateRecommendationItemRequest = z.object({
485
- decision: zSchemaEnum,
486
- note: z.optional(z.string().min(0).max(100)),
906
+ export const zRecommendationResponse = z.object({
907
+ recommendationsId: z.uuid(),
908
+ title: z.string(),
909
+ createdAt: z.iso.datetime(),
910
+ status: z.enum(['DRAFT', 'AWAITING_CLIENT_REVIEW', 'CLOSED']),
911
+ recommendations: zPagedModelRecommendationsCardView,
487
912
  });
488
913
  export const zRecommendationDecisionResponse = z.object({
489
914
  itemId: z.coerce
@@ -496,14 +921,64 @@ export const zRecommendationDecisionResponse = z.object({
496
921
  }),
497
922
  externalPropertyId: z.uuid(),
498
923
  externalListingId: z.uuid(),
499
- decision: zSchemaEnum,
500
- });
501
- export const zSchemaEnum2 = z.enum([
502
- 'NEW',
503
- 'ACTIVE',
504
- 'PAYMENT_FAILED',
505
- 'INACTIVE',
506
- ]);
924
+ decision: z.enum(['MAYBE', 'DISLIKE', 'LIKE', 'VISIT']),
925
+ });
926
+ export const zPermissionResponse = z.object({
927
+ permission: z.enum([
928
+ 'AGENCY_WRITE',
929
+ 'INVITATION_READ',
930
+ 'INVITATION_WRITE',
931
+ 'ROLE_READ',
932
+ 'ROLE_WRITE',
933
+ 'MEMBER_READ',
934
+ 'MEMBER_WRITE',
935
+ 'LEAD_READ',
936
+ 'LEAD_WRITE',
937
+ 'LEAD_READ_ALL',
938
+ 'LEAD_WRITE_ALL',
939
+ 'CLIENT_READ',
940
+ 'CLIENT_WRITE',
941
+ 'CLIENT_READ_ALL',
942
+ 'CLIENT_WRITE_ALL',
943
+ 'PROPERTY_READ_ALL',
944
+ ]),
945
+ implied: z.array(z.enum([
946
+ 'AGENCY_WRITE',
947
+ 'INVITATION_READ',
948
+ 'INVITATION_WRITE',
949
+ 'ROLE_READ',
950
+ 'ROLE_WRITE',
951
+ 'MEMBER_READ',
952
+ 'MEMBER_WRITE',
953
+ 'LEAD_READ',
954
+ 'LEAD_WRITE',
955
+ 'LEAD_READ_ALL',
956
+ 'LEAD_WRITE_ALL',
957
+ 'CLIENT_READ',
958
+ 'CLIENT_WRITE',
959
+ 'CLIENT_READ_ALL',
960
+ 'CLIENT_WRITE_ALL',
961
+ 'PROPERTY_READ_ALL',
962
+ ])),
963
+ });
964
+ export const zGroupedPermissionsResponse = z.object({
965
+ group: z.enum([
966
+ 'AGENCY',
967
+ 'INVITATION',
968
+ 'ROLE',
969
+ 'MEMBER',
970
+ 'LEAD',
971
+ 'CLIENT',
972
+ 'PROPERTY',
973
+ ]),
974
+ permissions: z.array(zPermissionResponse),
975
+ });
976
+ export const zInvitationDetailsResponse = z.object({
977
+ invitationId: z.uuid(),
978
+ agencyId: z.uuid(),
979
+ email: z.string(),
980
+ status: z.enum(['PENDING', 'ACCEPTED', 'CANCELLED', 'EXPIRED']),
981
+ });
507
982
  export const zAgencySummaryResponse = z.object({
508
983
  id: z.uuid(),
509
984
  owner: z.string(),
@@ -527,7 +1002,7 @@ export const zAgencySummaryResponse = z.object({
527
1002
  .max(2147483647, {
528
1003
  error: 'Invalid value: Expected int32 to be <= 2147483647',
529
1004
  })),
530
- status: zSchemaEnum2,
1005
+ status: z.enum(['NEW', 'ACTIVE', 'PAYMENT_FAILED', 'INACTIVE']),
531
1006
  logo: z.optional(z.string()),
532
1007
  theme: z.optional(z
533
1008
  .int()
@@ -542,325 +1017,29 @@ export const zPagedModelAgencySummaryResponse = z.object({
542
1017
  content: z.optional(z.array(zAgencySummaryResponse)),
543
1018
  page: z.optional(zPageMetadata),
544
1019
  });
545
- export const zSchemaEnum3 = z.enum([
546
- 'AGENCY_WRITE',
547
- 'INVITATION_READ',
548
- 'INVITATION_WRITE',
549
- 'ROLE_READ',
550
- 'ROLE_WRITE',
551
- 'MEMBER_READ',
552
- 'MEMBER_WRITE',
553
- 'LEAD_READ',
554
- 'LEAD_WRITE',
555
- 'LEAD_READ_ALL',
556
- 'LEAD_WRITE_ALL',
557
- 'CLIENT_READ',
558
- 'CLIENT_WRITE',
559
- 'CLIENT_READ_ALL',
560
- 'CLIENT_WRITE_ALL',
561
- 'PROPERTY_READ_ALL',
562
- ]);
563
- export const zRolesRequest = z.object({
564
- name: z.string().min(1),
565
- description: z.string().min(1),
566
- permissions: z.array(zSchemaEnum3),
567
- });
568
- export const zAgencyPrincipalDto = z.object({
569
- memberId: z.optional(z.uuid()),
570
- permissions: z.optional(z.array(zSchemaEnum3)),
571
- isActive: z.optional(z.boolean()),
572
- isOwner: z.optional(z.boolean()),
1020
+ export const zAgencyContactInfoResponse = z.object({
1021
+ phone: z.string(),
1022
+ email: z.string(),
1023
+ address: z.optional(z.string()),
573
1024
  });
574
- export const zOrganizationSummaryViewResponse = z.object({
575
- agencyId: z.uuid(),
576
- isOwner: z.boolean(),
577
- agencyName: z.string(),
578
- subdomain: z.string(),
579
- roleId: z.optional(z
1025
+ export const zAgencyStatsResponse = z.object({
1026
+ membersCount: z
580
1027
  .int()
581
1028
  .min(-2147483648, {
582
1029
  error: 'Invalid value: Expected int32 to be >= -2147483648',
583
1030
  })
584
1031
  .max(2147483647, {
585
1032
  error: 'Invalid value: Expected int32 to be <= 2147483647',
586
- })),
587
- memberId: z.uuid(),
588
- roleName: z.string(),
589
- permissions: z.array(zSchemaEnum3),
590
- status: zSchemaEnum2,
591
- });
592
- export const zUserContextViewResponse = z.object({
593
- user: zUserSummaryViewResponse,
594
- organizations: z.array(zOrganizationSummaryViewResponse),
595
- });
596
- export const zRoleResponse = z.object({
597
- id: z
598
- .int()
599
- .min(-2147483648, {
600
- error: 'Invalid value: Expected int32 to be >= -2147483648',
601
- })
602
- .max(2147483647, {
603
- error: 'Invalid value: Expected int32 to be <= 2147483647',
604
- }),
605
- name: z.string(),
606
- isSystem: z.optional(z.boolean()),
607
- isOwner: z.optional(z.boolean()),
608
- description: z.string(),
609
- permissions: z.array(zSchemaEnum3),
610
- });
611
- export const zPagedModelRoleResponse = z.object({
612
- content: z.optional(z.array(zRoleResponse)),
613
- page: z.optional(zPageMetadata),
614
- });
615
- export const zPermissionResponse = z.object({
616
- permission: zSchemaEnum3,
617
- implied: z.array(zSchemaEnum3),
618
- });
619
- export const zSchemaEnum4 = z.enum([
620
- 'IN_REGISTRATION',
621
- 'UNLISTED',
622
- 'LISTED_INTERNALLY',
623
- 'LISTED',
624
- 'CLOSED',
625
- ]);
626
- export const zSchemaEnum5 = z.enum(['EXCLUSIVE', 'NON_EXCLUSIVE']);
627
- export const zAgreementRequest = z.object({
628
- type: zSchemaEnum5,
629
- expiresAt: z.optional(z.iso.date()),
630
- });
631
- export const zAgreementResponse = z.object({
632
- agreement: zSchemaEnum5,
633
- expiryDate: z.optional(z.iso.date()),
634
- });
635
- export const zSchemaEnum6 = z.enum([
636
- 'HOUSE',
637
- 'TOWN_HOUSE',
638
- 'COUNTRY_HOUSE',
639
- 'VILLA',
640
- 'COTTAGE',
641
- 'APARTMENT',
642
- 'DUPLEX',
643
- 'TRIPLEX',
644
- 'SEMI_BASEMENT',
645
- 'ATTIC',
646
- 'AGRICULTURAL_LAND',
647
- 'RESIDENTIAL_LAND',
648
- 'HOTEL_ROOM',
649
- 'MOTEL_ROOM',
650
- 'CO_LIVING_SPACE',
651
- 'OFFICE',
652
- 'COMMERCIAL_SPACE',
653
- 'CO_WORKING_SPACE',
654
- 'WAREHOUSE',
655
- 'GARAGE',
656
- ]);
657
- export const zPropertyCreationRequest = z.object({
658
- draftId: z.uuid(),
659
- clientId: z.optional(z.coerce
660
- .bigint()
661
- .min(BigInt('-9223372036854775808'), {
662
- error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
663
- })
664
- .max(BigInt('9223372036854775807'), {
665
- error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
666
- })),
667
- propertyType: zSchemaEnum6,
668
- address: zAddressRef,
669
- photoUrls: z.array(zPhotoInternalRequest).min(5).max(2147483647),
670
- spaces: z.record(z.string(), z.array(z.number())),
671
- totalArea: z.number(),
672
- livingArea: z.optional(z.number()),
673
- balconyArea: z.optional(z.number()),
674
- amenities: z.array(z
675
- .int()
676
- .min(-2147483648, {
677
- error: 'Invalid value: Expected int32 to be >= -2147483648',
678
- })
679
- .max(2147483647, {
680
- error: 'Invalid value: Expected int32 to be <= 2147483647',
681
- })),
682
- title: z.string().min(1),
683
- description: z.record(z.string(), z.string()),
684
- });
685
- export const zSchemaEnum7 = z.enum(['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE']);
686
- export const zCaptureInterestRequest = z.object({
687
- propertyTypes: z.array(zSchemaEnum6).min(1),
688
- listingType: zSchemaEnum7,
689
- priceMin: z.optional(z.number()),
690
- priceMax: z.optional(z.number()),
691
- bedroomsMin: z.optional(z
692
- .int()
693
- .min(-2147483648, {
694
- error: 'Invalid value: Expected int32 to be >= -2147483648',
695
- })
696
- .max(2147483647, {
697
- error: 'Invalid value: Expected int32 to be <= 2147483647',
698
- })),
699
- bedroomsMax: z.optional(z
700
- .int()
701
- .min(-2147483648, {
702
- error: 'Invalid value: Expected int32 to be >= -2147483648',
703
- })
704
- .max(2147483647, {
705
- error: 'Invalid value: Expected int32 to be <= 2147483647',
706
- })),
707
- bathroomsMin: z.optional(z
708
- .int()
709
- .min(-2147483648, {
710
- error: 'Invalid value: Expected int32 to be >= -2147483648',
711
- })
712
- .max(2147483647, {
713
- error: 'Invalid value: Expected int32 to be <= 2147483647',
714
- })),
715
- bathroomsMax: z.optional(z
716
- .int()
717
- .min(-2147483648, {
718
- error: 'Invalid value: Expected int32 to be >= -2147483648',
719
- })
720
- .max(2147483647, {
721
- error: 'Invalid value: Expected int32 to be <= 2147483647',
722
- })),
723
- totalAreaMin: z.optional(z.number()),
724
- totalAreaMax: z.optional(z.number()),
725
- livingAreaMin: z.optional(z.number()),
726
- livingAreaMax: z.optional(z.number()),
727
- location: z.optional(zLocationRefRequest),
728
- });
729
- export const zRecommendationsCardView = z.object({
730
- recommendationItemId: z.coerce
731
- .bigint()
732
- .min(BigInt('-9223372036854775808'), {
733
- error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
734
- })
735
- .max(BigInt('9223372036854775807'), {
736
- error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
737
- }),
738
- decision: z.optional(zSchemaEnum),
739
- clientNote: z.optional(z.string()),
740
- ownerClientId: z.coerce
741
- .bigint()
742
- .min(BigInt('-9223372036854775808'), {
743
- error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
744
- })
745
- .max(BigInt('9223372036854775807'), {
746
- error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
747
- }),
748
- listingId: z.coerce
749
- .bigint()
750
- .min(BigInt('-9223372036854775808'), {
751
- error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
752
- })
753
- .max(BigInt('9223372036854775807'), {
754
- error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
755
- }),
756
- externalListingId: z.uuid(),
757
- listingType: zSchemaEnum7,
758
- price: z.number(),
759
- propertyId: z.coerce
760
- .bigint()
761
- .min(BigInt('-9223372036854775808'), {
762
- error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
763
- })
764
- .max(BigInt('9223372036854775807'), {
765
- error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
766
1033
  }),
767
- externalPropertyId: z.uuid(),
768
- type: zSchemaEnum6,
769
- coverPhoto: z.optional(z.string()),
770
- photoCount: z.optional(z
771
- .int()
772
- .min(-2147483648, {
773
- error: 'Invalid value: Expected int32 to be >= -2147483648',
774
- })
775
- .max(2147483647, {
776
- error: 'Invalid value: Expected int32 to be <= 2147483647',
777
- })),
778
- totalArea: z.number(),
779
- livingArea: z.optional(z.number()),
780
- balconyArea: z.optional(z.number()),
781
- address: zAddressResponse,
782
- });
783
- export const zPagedModelRecommendationsCardView = z.object({
784
- content: z.optional(z.array(zRecommendationsCardView)),
785
- page: z.optional(zPageMetadata),
786
- });
787
- export const zClientInterestResponse = z.object({
788
- id: z.coerce
789
- .bigint()
790
- .min(BigInt('-9223372036854775808'), {
791
- error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
792
- })
793
- .max(BigInt('9223372036854775807'), {
794
- error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
795
- }),
796
- propertyTypes: z.array(zSchemaEnum6),
797
- listingType: zSchemaEnum7,
798
- priceMin: z.optional(z.number()),
799
- priceMax: z.optional(z.number()),
800
- bedroomsMin: z.optional(z
801
- .int()
802
- .min(-2147483648, {
803
- error: 'Invalid value: Expected int32 to be >= -2147483648',
804
- })
805
- .max(2147483647, {
806
- error: 'Invalid value: Expected int32 to be <= 2147483647',
807
- })),
808
- bedroomsMax: z.optional(z
809
- .int()
810
- .min(-2147483648, {
811
- error: 'Invalid value: Expected int32 to be >= -2147483648',
812
- })
813
- .max(2147483647, {
814
- error: 'Invalid value: Expected int32 to be <= 2147483647',
815
- })),
816
- bathroomsMin: z.optional(z
817
- .int()
818
- .min(-2147483648, {
819
- error: 'Invalid value: Expected int32 to be >= -2147483648',
820
- })
821
- .max(2147483647, {
822
- error: 'Invalid value: Expected int32 to be <= 2147483647',
823
- })),
824
- bathroomsMax: z.optional(z
1034
+ listingCount: z
825
1035
  .int()
826
1036
  .min(-2147483648, {
827
1037
  error: 'Invalid value: Expected int32 to be >= -2147483648',
828
1038
  })
829
1039
  .max(2147483647, {
830
1040
  error: 'Invalid value: Expected int32 to be <= 2147483647',
831
- })),
832
- totalAreaMin: z.optional(z.number()),
833
- totalAreaMax: z.optional(z.number()),
834
- livingAreaMin: z.optional(z.number()),
835
- livingAreaMax: z.optional(z.number()),
836
- location: z.optional(zLocationRefRequest),
837
- active: z.boolean(),
838
- });
839
- export const zSchemaEnum8 = z.enum(['SS', 'MY_HOME']);
840
- export const zExternalListingPublishRequest = z.object({
841
- platform: zSchemaEnum8,
842
- listingId: z.coerce
843
- .bigint()
844
- .min(BigInt('-9223372036854775808'), {
845
- error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
846
- })
847
- .max(BigInt('9223372036854775807'), {
848
- error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
849
1041
  }),
850
- });
851
- export const zSchemaEnum9 = z.enum(['VIP', 'VIP_PLUS', 'SUPER_VIP']);
852
- export const zExternalListingBoostRequest = z.object({
853
- platform: zSchemaEnum8,
854
- listingId: z.coerce
855
- .bigint()
856
- .min(BigInt('-9223372036854775808'), {
857
- error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
858
- })
859
- .max(BigInt('9223372036854775807'), {
860
- error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
861
- }),
862
- tier: zSchemaEnum9,
863
- numberOfDays: z
1042
+ operatingSince: z
864
1043
  .int()
865
1044
  .min(-2147483648, {
866
1045
  error: 'Invalid value: Expected int32 to be >= -2147483648',
@@ -869,97 +1048,18 @@ export const zExternalListingBoostRequest = z.object({
869
1048
  error: 'Invalid value: Expected int32 to be <= 2147483647',
870
1049
  }),
871
1050
  });
872
- export const zPlatformView = z.object({
873
- platform: z.optional(zSchemaEnum8),
874
- expiresAt: z.optional(z.iso.date()),
875
- tier: z.optional(zSchemaEnum9),
876
- boostExpiresAt: z.optional(z.iso.date()),
877
- });
878
- export const zActiveBoostResponse = z.object({
879
- tier: zSchemaEnum9,
880
- activatedAt: z.iso.date(),
881
- expiresAt: z.iso.date(),
882
- });
883
- export const zPlatformListingResponse = z.object({
884
- platformId: z.coerce
885
- .bigint()
886
- .min(BigInt('-9223372036854775808'), {
887
- error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
888
- })
889
- .max(BigInt('9223372036854775807'), {
890
- error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
891
- }),
892
- platformType: zSchemaEnum8,
893
- uploadDate: z.iso.date(),
894
- expiryDate: z.iso.date(),
895
- renewedDate: z.optional(z.iso.date()),
896
- boost: z.optional(zActiveBoostResponse),
897
- coloredListing: z.optional(zColoredListingResponse),
898
- });
899
- export const zSchemaEnum10 = z.enum([
900
- 'STATE',
901
- 'PROPERTY_TYPE',
902
- 'LISTING_TYPE',
903
- 'REGION',
904
- 'PLATFORM',
905
- 'BOOST_TIER',
906
- 'CREATED_AT_DAY',
907
- 'CREATED_AT_WEEK',
908
- 'CREATED_AT_MONTH',
909
- ]);
910
- export const zSchemaEnum11 = z.enum(['NEW', 'ON_HOLD', 'LOST', 'CONVERTED']);
911
- export const zSchemaEnum12 = z.enum(['MY_HOME', 'SS', 'HOME_SPOT', 'UNKNOWN']);
912
- export const zSourceResponse = z.object({
913
- sourceType: zSchemaEnum12,
914
- sourceLink: z.optional(z.string()),
915
- });
916
- export const zSchemaEnum13 = z.enum([
917
- 'ASSIGNED_TO',
918
- 'STATUS',
919
- 'SOURCE_TYPE',
920
- 'CREATED_AT_DAY',
921
- 'CREATED_AT_WEEK',
922
- 'CREATED_AT_MONTH',
923
- ]);
924
- export const zTypeEnum = z.enum([
925
- 'FACEBOOK',
926
- 'YOUTUBE',
927
- 'INSTAGRAM',
928
- 'TIKTOK',
929
- 'LINKEDIN',
930
- ]);
931
- export const zSocialMediaRequest = z.object({
932
- type: zTypeEnum,
933
- url: z.optional(z.string()),
934
- });
935
- export const zSocialMediasRequest = z.object({
936
- data: z.array(zSocialMediaRequest).min(1).max(6),
937
- });
938
- export const zSocialLinkResponse = z.object({
939
- url: z.string(),
940
- type: zTypeEnum,
941
- });
942
- export const zLanguageEnum = z.enum(['ka', 'en', 'ru']);
943
- export const zTextRequest = z.object({
944
- language: zLanguageEnum,
945
- text: z.optional(z.string()),
946
- });
947
- export const zMultiLangTextRequest = z.object({
948
- data: z.array(zTextRequest).min(1).max(3),
949
- });
950
- export const zWhitelabelSectionRequest = z.object({
951
- title: zMultiLangTextRequest,
952
- body: zMultiLangTextRequest,
953
- });
954
- export const zWhitelabelReviewRequest = z.object({
955
- quote: zMultiLangTextRequest,
956
- name: zMultiLangTextRequest,
957
- status: zMultiLangTextRequest,
958
- });
959
1051
  export const zLangTextResponse = z.object({
960
- language: zLanguageEnum,
1052
+ language: z.enum(['ka', 'en', 'ru']),
961
1053
  text: z.string(),
962
1054
  });
1055
+ export const zMemberResponse = z.object({
1056
+ memberId: z.uuid(),
1057
+ firstName: z.string(),
1058
+ lastName: z.string(),
1059
+ phone: z.optional(z.string()),
1060
+ email: z.string(),
1061
+ profilePictureUrl: z.optional(z.string()),
1062
+ });
963
1063
  export const zReviewResponse = z.object({
964
1064
  quote: z.optional(z.array(zLangTextResponse)),
965
1065
  name: z.optional(z.array(zLangTextResponse)),
@@ -969,6 +1069,10 @@ export const zSegmentResponse = z.object({
969
1069
  title: z.optional(z.array(zLangTextResponse)),
970
1070
  body: z.optional(z.array(zLangTextResponse)),
971
1071
  });
1072
+ export const zSocialLinkResponse = z.object({
1073
+ url: z.string(),
1074
+ type: z.enum(['FACEBOOK', 'YOUTUBE', 'INSTAGRAM', 'TIKTOK', 'LINKEDIN']),
1075
+ });
972
1076
  export const zWhitelabelResponse = z.object({
973
1077
  theme: z
974
1078
  .int()
@@ -992,52 +1096,34 @@ export const zWhitelabelResponse = z.object({
992
1096
  socialLinks: z.optional(z.array(zSocialLinkResponse)),
993
1097
  website: z.optional(z.string()),
994
1098
  });
995
- export const zReasonEnum = z.enum([
996
- 'NOT_WORKING_WITH_AGENTS',
997
- 'NOT_RESPONDING',
998
- 'ALREADY_SOLD',
999
- 'COULD_NOT_NEGOTIATE_PRICE',
1000
- 'CHOSE_ANOTHER_AGENCY',
1001
- 'CHANGED_PLANS',
1002
- 'OUT_OF_BUDGET',
1003
- 'SPAM',
1004
- 'OTHER',
1005
- ]);
1006
- export const zRecordLostLeadRequest = z.object({
1007
- reason: zReasonEnum,
1008
- });
1009
- export const zClientTypeEnum = z.enum(['LISTING', 'SEEKING']);
1010
- export const zIntentRequest = z.object({
1011
- clientType: zClientTypeEnum,
1012
- listingType: zSchemaEnum7,
1013
- propertyType: zSchemaEnum6,
1014
- price: z.optional(zPriceRangeRequest),
1015
- targetLocation: z.optional(zLocationRefRequest),
1016
- area: z.optional(z.number()),
1017
- numberOfRooms: z.optional(z
1099
+ export const zMemberViewResponse = z.object({
1100
+ userId: z.string(),
1101
+ firstName: z.string(),
1102
+ lastName: z.string(),
1103
+ profilePictureUrl: z.optional(z.string()),
1104
+ phone: z.optional(z.string()),
1105
+ email: z.string(),
1106
+ roleId: z
1018
1107
  .int()
1019
1108
  .min(-2147483648, {
1020
1109
  error: 'Invalid value: Expected int32 to be >= -2147483648',
1021
1110
  })
1022
1111
  .max(2147483647, {
1023
1112
  error: 'Invalid value: Expected int32 to be <= 2147483647',
1024
- })),
1025
- });
1026
- export const zIntentResponse = z.object({
1027
- id: z.coerce
1028
- .bigint()
1029
- .min(BigInt('-9223372036854775808'), {
1030
- error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
1031
- })
1032
- .max(BigInt('9223372036854775807'), {
1033
- error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1034
1113
  }),
1035
- clientType: zClientTypeEnum,
1036
- listingType: zSchemaEnum7,
1037
- propertyType: zSchemaEnum6,
1038
- priceMin: z.optional(z.number()),
1039
- priceMax: z.optional(z.number()),
1040
- regionId: z.optional(z.coerce
1114
+ roleName: z.string(),
1115
+ joinedAt: z.iso.datetime(),
1116
+ });
1117
+ export const zPlatformView = z.object({
1118
+ platform: z.optional(z.enum(['SS', 'MY_HOME'])),
1119
+ expiresAt: z.optional(z.iso.date()),
1120
+ tier: z.optional(z.enum(['VIP', 'VIP_PLUS', 'SUPER_VIP'])),
1121
+ boostExpiresAt: z.optional(z.iso.date()),
1122
+ });
1123
+ export const zListingGridView = z.object({
1124
+ externalPropertyId: z.optional(z.uuid()),
1125
+ externalListingId: z.optional(z.uuid()),
1126
+ propertyId: z.optional(z.coerce
1041
1127
  .bigint()
1042
1128
  .min(BigInt('-9223372036854775808'), {
1043
1129
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
@@ -1045,7 +1131,7 @@ export const zIntentResponse = z.object({
1045
1131
  .max(BigInt('9223372036854775807'), {
1046
1132
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1047
1133
  })),
1048
- districtId: z.optional(z.coerce
1134
+ listingId: z.optional(z.coerce
1049
1135
  .bigint()
1050
1136
  .min(BigInt('-9223372036854775808'), {
1051
1137
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
@@ -1053,7 +1139,7 @@ export const zIntentResponse = z.object({
1053
1139
  .max(BigInt('9223372036854775807'), {
1054
1140
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1055
1141
  })),
1056
- subDistrictId: z.optional(z.coerce
1142
+ clientId: z.optional(z.coerce
1057
1143
  .bigint()
1058
1144
  .min(BigInt('-9223372036854775808'), {
1059
1145
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
@@ -1061,7 +1147,30 @@ export const zIntentResponse = z.object({
1061
1147
  .max(BigInt('9223372036854775807'), {
1062
1148
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1063
1149
  })),
1064
- streetId: z.optional(z.coerce
1150
+ propertyType: z.optional(z.enum([
1151
+ 'HOUSE',
1152
+ 'TOWN_HOUSE',
1153
+ 'COUNTRY_HOUSE',
1154
+ 'VILLA',
1155
+ 'COTTAGE',
1156
+ 'APARTMENT',
1157
+ 'DUPLEX',
1158
+ 'TRIPLEX',
1159
+ 'SEMI_BASEMENT',
1160
+ 'ATTIC',
1161
+ 'AGRICULTURAL_LAND',
1162
+ 'RESIDENTIAL_LAND',
1163
+ 'HOTEL_ROOM',
1164
+ 'MOTEL_ROOM',
1165
+ 'CO_LIVING_SPACE',
1166
+ 'OFFICE',
1167
+ 'COMMERCIAL_SPACE',
1168
+ 'CO_WORKING_SPACE',
1169
+ 'WAREHOUSE',
1170
+ 'GARAGE',
1171
+ ])),
1172
+ title: z.optional(z.string()),
1173
+ regionId: z.optional(z.coerce
1065
1174
  .bigint()
1066
1175
  .min(BigInt('-9223372036854775808'), {
1067
1176
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
@@ -1069,104 +1178,7 @@ export const zIntentResponse = z.object({
1069
1178
  .max(BigInt('9223372036854775807'), {
1070
1179
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1071
1180
  })),
1072
- area: z.optional(z.number()),
1073
- numberOfRooms: z.optional(z
1074
- .int()
1075
- .min(-2147483648, {
1076
- error: 'Invalid value: Expected int32 to be >= -2147483648',
1077
- })
1078
- .max(2147483647, {
1079
- error: 'Invalid value: Expected int32 to be <= 2147483647',
1080
- })),
1081
- });
1082
- export const zGenderEnum = z.enum(['MALE', 'FEMALE', 'UNKNOWN']);
1083
- export const zContactInfoRequest = z.object({
1084
- firstName: z.optional(z.string().min(1).max(20)),
1085
- lastName: z.optional(z.string().min(1).max(20)),
1086
- gender: z.optional(zGenderEnum),
1087
- email: z.optional(z.email()),
1088
- phone: z.string().min(1).max(20),
1089
- });
1090
- export const zCaptureLeadRequest = z.object({
1091
- contactInfo: zContactInfoRequest,
1092
- note: z.optional(z.string().min(0).max(500)),
1093
- });
1094
- export const zContactSummary = z.object({
1095
- firstName: z.optional(z.string()),
1096
- lastName: z.optional(z.string()),
1097
- gender: z.optional(zGenderEnum),
1098
- email: z.optional(z.string()),
1099
- phone: z.optional(z.string()),
1100
- });
1101
- export const zImportedPropertyDraft = z.object({
1102
- contact: z.optional(zContactSummary),
1103
- listingType: z.optional(zSchemaEnum7),
1104
- askingPrice: z.optional(z.number()),
1105
- propertyCreationRequest: z.optional(zPropertyCreationRequest),
1106
- photosForUpload: z.optional(z.array(zPresignedResult)),
1107
- });
1108
- export const zClientOnboardedResponse = z.object({
1109
- clientId: z.coerce
1110
- .bigint()
1111
- .min(BigInt('-9223372036854775808'), {
1112
- error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
1113
- })
1114
- .max(BigInt('9223372036854775807'), {
1115
- error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1116
- }),
1117
- importedProperty: z.optional(zImportedPropertyDraft),
1118
- });
1119
- export const zLeadGridResponse = z.object({
1120
- id: z.coerce
1121
- .bigint()
1122
- .min(BigInt('-9223372036854775808'), {
1123
- error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
1124
- })
1125
- .max(BigInt('9223372036854775807'), {
1126
- error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1127
- }),
1128
- createdBy: z.optional(z.uuid()),
1129
- assignedTo: z.optional(z.uuid()),
1130
- assignedToName: z.optional(z.string()),
1131
- assignedToPhoto: z.optional(z.string()),
1132
- status: zSchemaEnum11,
1133
- contactFullName: z.optional(z.string()),
1134
- contactGender: z.optional(zGenderEnum),
1135
- contactPhoneNumber: z.string(),
1136
- contactEmail: z.optional(z.string()),
1137
- note: z.optional(z.string()),
1138
- sourceType: z.optional(zSchemaEnum12),
1139
- sourceLink: z.optional(z.string()),
1140
- isSearching: z.boolean(),
1141
- isListing: z.boolean(),
1142
- intents: z.optional(z.array(zIntentResponse)),
1143
- });
1144
- export const zPagedModelLeadGridResponse = z.object({
1145
- content: z.optional(z.array(zLeadGridResponse)),
1146
- page: z.optional(zPageMetadata),
1147
- });
1148
- export const zContactInfoResponse = z.object({
1149
- firstName: z.optional(z.string()),
1150
- lastName: z.optional(z.string()),
1151
- gender: zGenderEnum,
1152
- phoneNumber: z.string(),
1153
- email: z.optional(z.string()),
1154
- });
1155
- export const zPriorityEnum = z.enum(['CRITICAL', 'HIGH', 'MEDIUM', 'LOW']);
1156
- export const zReprioritizeClientRequest = z.object({
1157
- priority: z.optional(zPriorityEnum),
1158
- });
1159
- export const zItemsEnum = z.enum(['WHATSAPP', 'VIBER', 'PHONE_CALL']);
1160
- export const zUpdateContactPreferencesRequest = z.object({
1161
- contactMethods: z.array(zItemsEnum),
1162
- favoriteContactMethod: z.optional(zItemsEnum),
1163
- });
1164
- export const zOnboardClientRequest = z.object({
1165
- contactInfo: zContactInfoRequest,
1166
- contactMethods: z.array(zItemsEnum),
1167
- favoriteContactMethod: z.optional(zItemsEnum),
1168
- priority: z.optional(zPriorityEnum),
1169
- convertedFromLeadId: z.optional(z.coerce
1181
+ districtId: z.optional(z.coerce
1170
1182
  .bigint()
1171
1183
  .min(BigInt('-9223372036854775808'), {
1172
1184
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
@@ -1174,18 +1186,15 @@ export const zOnboardClientRequest = z.object({
1174
1186
  .max(BigInt('9223372036854775807'), {
1175
1187
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1176
1188
  })),
1177
- });
1178
- export const zClientGridResponse = z.object({
1179
- id: z.coerce
1189
+ subdistrictId: z.optional(z.coerce
1180
1190
  .bigint()
1181
1191
  .min(BigInt('-9223372036854775808'), {
1182
1192
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
1183
1193
  })
1184
1194
  .max(BigInt('9223372036854775807'), {
1185
1195
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1186
- }),
1187
- createdBy: z.uuid(),
1188
- leadId: z.optional(z.coerce
1196
+ })),
1197
+ streetId: z.optional(z.coerce
1189
1198
  .bigint()
1190
1199
  .min(BigInt('-9223372036854775808'), {
1191
1200
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
@@ -1193,41 +1202,31 @@ export const zClientGridResponse = z.object({
1193
1202
  .max(BigInt('9223372036854775807'), {
1194
1203
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1195
1204
  })),
1196
- assignedTo: z.optional(z.uuid()),
1197
- assignedToName: z.optional(z.string()),
1198
- assignedToPhoto: z.optional(z.string()),
1199
- contactFullName: z.optional(z.string()),
1200
- contactPhoneNumber: z.string(),
1201
- contactGender: z.optional(zGenderEnum),
1202
- contactEmail: z.optional(z.string()),
1203
- sourceType: z.optional(zSchemaEnum12),
1204
- sourceLink: z.optional(z.string()),
1205
- isSearching: z.boolean(),
1206
- isListing: z.boolean(),
1207
- contactMethods: z.array(zItemsEnum),
1208
- favoriteContactMethod: z.optional(zItemsEnum),
1209
- priority: z.optional(zPriorityEnum),
1205
+ cover: z.optional(z.string()),
1206
+ agreementType: z.optional(z.enum(['EXCLUSIVE', 'NON_EXCLUSIVE'])),
1207
+ agreementExpiresAt: z.optional(z.iso.date()),
1208
+ propertyState: z.optional(z.enum([
1209
+ 'IN_REGISTRATION',
1210
+ 'UNLISTED',
1211
+ 'LISTED_INTERNALLY',
1212
+ 'LISTED',
1213
+ 'CLOSED',
1214
+ ])),
1215
+ createdAt: z.optional(z.iso.datetime()),
1216
+ listingType: z.optional(z.enum(['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE'])),
1217
+ price: z.optional(z.number()),
1218
+ commissionType: z.optional(z.enum(['FIXED_SALE', 'FIXED_RENT', 'PERCENTAGE', 'MONTHS_OF_RENT'])),
1219
+ commission: z.optional(z.number()),
1220
+ platforms: z.optional(z.array(zPlatformView)),
1210
1221
  });
1211
- export const zPagedModelClientGridResponse = z.object({
1212
- content: z.optional(z.array(zClientGridResponse)),
1222
+ export const zPagedModelListingGridView = z.object({
1223
+ content: z.optional(z.array(zListingGridView)),
1213
1224
  page: z.optional(zPageMetadata),
1214
1225
  });
1215
- export const zCommunicationPreferenceResponse = z.object({
1216
- preferredContactMethod: z.optional(zItemsEnum),
1217
- contactMethods: z.array(zItemsEnum),
1218
- });
1219
- export const zTypeEnum2 = z.enum(['JPEG', 'JPG', 'PNG', 'WEBP']);
1220
- export const zPhotoRequest = z.object({
1221
- photo: z.string().min(0).max(255),
1222
- type: zTypeEnum2,
1223
- width: z.int().gte(10).lte(11000),
1224
- height: z.optional(z.int().gte(10).lte(11000)),
1225
- });
1226
- export const zRoleEnum = z.enum(['ORGANIZER', 'AGENT', 'OWNER', 'CLIENT']);
1227
- export const zAttendeeRequest = z.object({
1228
- role: zRoleEnum,
1229
- memberId: z.optional(z.uuid()),
1230
- clientId: z.optional(z.coerce
1226
+ export const zGroupCount = z.object({
1227
+ groupKey: z.optional(z.string()),
1228
+ label: z.optional(z.string()),
1229
+ count: z.optional(z.coerce
1231
1230
  .bigint()
1232
1231
  .min(BigInt('-9223372036854775808'), {
1233
1232
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
@@ -1235,56 +1234,51 @@ export const zAttendeeRequest = z.object({
1235
1234
  .max(BigInt('9223372036854775807'), {
1236
1235
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1237
1236
  })),
1238
- email: z.optional(z.email()),
1239
- name: z.optional(z.string()),
1240
1237
  });
1241
- export const zInviteStrategyEnum = z.enum([
1242
- 'NONE',
1243
- 'AGENT_ONLY',
1244
- 'ALL_PARTICIPANTS',
1245
- ]);
1246
- export const zCreateMeetingRequest = z.object({
1247
- propertyId: z.optional(z.coerce
1238
+ export const zIntentResponse = z.object({
1239
+ id: z.coerce
1248
1240
  .bigint()
1249
1241
  .min(BigInt('-9223372036854775808'), {
1250
1242
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
1251
1243
  })
1252
1244
  .max(BigInt('9223372036854775807'), {
1253
1245
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1254
- })),
1255
- attendees: z.array(zAttendeeRequest).min(0).max(10),
1256
- start: z.iso.datetime(),
1257
- durationMinutes: z.optional(z.int().gte(15).lte(480)),
1258
- title: z.string().min(0).max(255),
1259
- description: z.optional(z.string().min(0).max(1000)),
1260
- location: z.optional(z.string().min(0).max(500)),
1261
- inviteStrategy: zInviteStrategyEnum,
1262
- setReminders: z.optional(z.boolean()),
1263
- });
1264
- export const zCommissionTypeEnum = z.enum([
1265
- 'FIXED_SALE',
1266
- 'FIXED_RENT',
1267
- 'PERCENTAGE',
1268
- 'MONTHS_OF_RENT',
1269
- ]);
1270
- export const zAddDealRequest = z.object({
1271
- listingId: z.coerce
1246
+ }),
1247
+ clientType: z.enum(['LISTING', 'SEEKING']),
1248
+ listingType: z.enum(['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE']),
1249
+ propertyType: z.enum([
1250
+ 'HOUSE',
1251
+ 'TOWN_HOUSE',
1252
+ 'COUNTRY_HOUSE',
1253
+ 'VILLA',
1254
+ 'COTTAGE',
1255
+ 'APARTMENT',
1256
+ 'DUPLEX',
1257
+ 'TRIPLEX',
1258
+ 'SEMI_BASEMENT',
1259
+ 'ATTIC',
1260
+ 'AGRICULTURAL_LAND',
1261
+ 'RESIDENTIAL_LAND',
1262
+ 'HOTEL_ROOM',
1263
+ 'MOTEL_ROOM',
1264
+ 'CO_LIVING_SPACE',
1265
+ 'OFFICE',
1266
+ 'COMMERCIAL_SPACE',
1267
+ 'CO_WORKING_SPACE',
1268
+ 'WAREHOUSE',
1269
+ 'GARAGE',
1270
+ ]),
1271
+ priceMin: z.optional(z.number()),
1272
+ priceMax: z.optional(z.number()),
1273
+ regionId: z.optional(z.coerce
1272
1274
  .bigint()
1273
1275
  .min(BigInt('-9223372036854775808'), {
1274
1276
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
1275
1277
  })
1276
1278
  .max(BigInt('9223372036854775807'), {
1277
1279
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1278
- }),
1279
- commissionType: zCommissionTypeEnum,
1280
- rate: z.optional(z.number()),
1281
- amount: z.optional(z.number()),
1282
- factor: z.optional(z.number()),
1283
- });
1284
- export const zListingGridView = z.object({
1285
- externalPropertyId: z.optional(z.uuid()),
1286
- externalListingId: z.optional(z.uuid()),
1287
- propertyId: z.optional(z.coerce
1280
+ })),
1281
+ districtId: z.optional(z.coerce
1288
1282
  .bigint()
1289
1283
  .min(BigInt('-9223372036854775808'), {
1290
1284
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
@@ -1292,7 +1286,7 @@ export const zListingGridView = z.object({
1292
1286
  .max(BigInt('9223372036854775807'), {
1293
1287
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1294
1288
  })),
1295
- listingId: z.optional(z.coerce
1289
+ subDistrictId: z.optional(z.coerce
1296
1290
  .bigint()
1297
1291
  .min(BigInt('-9223372036854775808'), {
1298
1292
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
@@ -1300,7 +1294,7 @@ export const zListingGridView = z.object({
1300
1294
  .max(BigInt('9223372036854775807'), {
1301
1295
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1302
1296
  })),
1303
- clientId: z.optional(z.coerce
1297
+ streetId: z.optional(z.coerce
1304
1298
  .bigint()
1305
1299
  .min(BigInt('-9223372036854775808'), {
1306
1300
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
@@ -1308,24 +1302,69 @@ export const zListingGridView = z.object({
1308
1302
  .max(BigInt('9223372036854775807'), {
1309
1303
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1310
1304
  })),
1311
- propertyType: z.optional(zSchemaEnum6),
1312
- regionId: z.optional(z.coerce
1305
+ area: z.optional(z.number()),
1306
+ numberOfRooms: z.optional(z
1307
+ .int()
1308
+ .min(-2147483648, {
1309
+ error: 'Invalid value: Expected int32 to be >= -2147483648',
1310
+ })
1311
+ .max(2147483647, {
1312
+ error: 'Invalid value: Expected int32 to be <= 2147483647',
1313
+ })),
1314
+ });
1315
+ export const zLeadGridResponse = z.object({
1316
+ id: z.coerce
1313
1317
  .bigint()
1314
1318
  .min(BigInt('-9223372036854775808'), {
1315
1319
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
1316
1320
  })
1317
1321
  .max(BigInt('9223372036854775807'), {
1318
1322
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1319
- })),
1320
- districtId: z.optional(z.coerce
1323
+ }),
1324
+ createdBy: z.optional(z.uuid()),
1325
+ assignedTo: z.optional(z.uuid()),
1326
+ assignedToName: z.optional(z.string()),
1327
+ assignedToPhoto: z.optional(z.string()),
1328
+ status: z.enum(['NEW', 'ON_HOLD', 'LOST', 'CONVERTED']),
1329
+ contactFullName: z.optional(z.string()),
1330
+ contactGender: z.optional(z.enum(['MALE', 'FEMALE', 'UNKNOWN'])),
1331
+ contactPhoneNumber: z.string(),
1332
+ contactEmail: z.optional(z.string()),
1333
+ note: z.optional(z.string()),
1334
+ sourceType: z.optional(z.enum(['MY_HOME', 'SS', 'HOME_SPOT', 'UNKNOWN'])),
1335
+ sourceLink: z.optional(z.string()),
1336
+ isSearching: z.boolean(),
1337
+ isListing: z.boolean(),
1338
+ intents: z.optional(z.array(zIntentResponse)),
1339
+ });
1340
+ export const zPagedModelLeadGridResponse = z.object({
1341
+ content: z.optional(z.array(zLeadGridResponse)),
1342
+ page: z.optional(zPageMetadata),
1343
+ });
1344
+ export const zInvitationViewResponse = z.object({
1345
+ invitationId: z.uuid(),
1346
+ email: z.string(),
1347
+ status: z.enum(['PENDING', 'ACCEPTED', 'CANCELLED', 'EXPIRED']),
1348
+ createdAt: z.iso.datetime(),
1349
+ expiresAt: z.iso.datetime(),
1350
+ acceptedAt: z.optional(z.iso.datetime()),
1351
+ acceptedBy: z.optional(z.string()),
1352
+ });
1353
+ export const zPagedModelInvitationViewResponse = z.object({
1354
+ content: z.optional(z.array(zInvitationViewResponse)),
1355
+ page: z.optional(zPageMetadata),
1356
+ });
1357
+ export const zClientGridResponse = z.object({
1358
+ id: z.coerce
1321
1359
  .bigint()
1322
1360
  .min(BigInt('-9223372036854775808'), {
1323
1361
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
1324
1362
  })
1325
1363
  .max(BigInt('9223372036854775807'), {
1326
1364
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1327
- })),
1328
- subdistrictId: z.optional(z.coerce
1365
+ }),
1366
+ createdBy: z.uuid(),
1367
+ leadId: z.optional(z.coerce
1329
1368
  .bigint()
1330
1369
  .min(BigInt('-9223372036854775808'), {
1331
1370
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
@@ -1333,36 +1372,151 @@ export const zListingGridView = z.object({
1333
1372
  .max(BigInt('9223372036854775807'), {
1334
1373
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1335
1374
  })),
1336
- streetId: z.optional(z.coerce
1375
+ assignedTo: z.optional(z.uuid()),
1376
+ assignedToName: z.optional(z.string()),
1377
+ assignedToPhoto: z.optional(z.string()),
1378
+ contactFullName: z.optional(z.string()),
1379
+ contactPhoneNumber: z.string(),
1380
+ contactGender: z.optional(z.enum(['MALE', 'FEMALE', 'UNKNOWN'])),
1381
+ contactEmail: z.optional(z.string()),
1382
+ sourceType: z.optional(z.enum(['MY_HOME', 'SS', 'HOME_SPOT', 'UNKNOWN'])),
1383
+ sourceLink: z.optional(z.string()),
1384
+ isSearching: z.boolean(),
1385
+ isListing: z.boolean(),
1386
+ contactMethods: z.array(z.enum(['WHATSAPP', 'VIBER', 'PHONE_CALL'])),
1387
+ favoriteContactMethod: z.optional(z.enum(['WHATSAPP', 'VIBER', 'PHONE_CALL'])),
1388
+ priority: z.optional(z.enum(['CRITICAL', 'HIGH', 'MEDIUM', 'LOW'])),
1389
+ });
1390
+ export const zPagedModelClientGridResponse = z.object({
1391
+ content: z.optional(z.array(zClientGridResponse)),
1392
+ page: z.optional(zPageMetadata),
1393
+ });
1394
+ export const zActiveBoostResponse = z.object({
1395
+ tier: z.enum(['VIP', 'VIP_PLUS', 'SUPER_VIP']),
1396
+ activatedAt: z.iso.date(),
1397
+ expiresAt: z.iso.date(),
1398
+ });
1399
+ export const zAgreementResponse = z.object({
1400
+ agreement: z.enum(['EXCLUSIVE', 'NON_EXCLUSIVE']),
1401
+ expiryDate: z.optional(z.iso.date()),
1402
+ });
1403
+ export const zAssignedMember = z.object({
1404
+ memberId: z.uuid(),
1405
+ name: z.string(),
1406
+ phone: z.string(),
1407
+ email: z.string(),
1408
+ });
1409
+ export const zClientInterestResponse = z.object({
1410
+ id: z.coerce
1337
1411
  .bigint()
1338
1412
  .min(BigInt('-9223372036854775808'), {
1339
1413
  error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
1340
1414
  })
1341
1415
  .max(BigInt('9223372036854775807'), {
1342
1416
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1417
+ }),
1418
+ propertyTypes: z.array(z.enum([
1419
+ 'HOUSE',
1420
+ 'TOWN_HOUSE',
1421
+ 'COUNTRY_HOUSE',
1422
+ 'VILLA',
1423
+ 'COTTAGE',
1424
+ 'APARTMENT',
1425
+ 'DUPLEX',
1426
+ 'TRIPLEX',
1427
+ 'SEMI_BASEMENT',
1428
+ 'ATTIC',
1429
+ 'AGRICULTURAL_LAND',
1430
+ 'RESIDENTIAL_LAND',
1431
+ 'HOTEL_ROOM',
1432
+ 'MOTEL_ROOM',
1433
+ 'CO_LIVING_SPACE',
1434
+ 'OFFICE',
1435
+ 'COMMERCIAL_SPACE',
1436
+ 'CO_WORKING_SPACE',
1437
+ 'WAREHOUSE',
1438
+ 'GARAGE',
1439
+ ])),
1440
+ listingType: z.enum(['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE']),
1441
+ priceMin: z.optional(z.number()),
1442
+ priceMax: z.optional(z.number()),
1443
+ bedroomsMin: z.optional(z
1444
+ .int()
1445
+ .min(-2147483648, {
1446
+ error: 'Invalid value: Expected int32 to be >= -2147483648',
1447
+ })
1448
+ .max(2147483647, {
1449
+ error: 'Invalid value: Expected int32 to be <= 2147483647',
1343
1450
  })),
1344
- cover: z.optional(z.string()),
1345
- agreementType: z.optional(zSchemaEnum5),
1346
- agreementExpiresAt: z.optional(z.iso.date()),
1347
- propertyState: z.optional(zSchemaEnum4),
1348
- createdAt: z.optional(z.iso.datetime()),
1349
- listingType: z.optional(zSchemaEnum7),
1350
- price: z.optional(z.number()),
1351
- commissionType: z.optional(zCommissionTypeEnum),
1352
- commission: z.optional(z.number()),
1353
- platforms: z.optional(z.array(zPlatformView)),
1451
+ bedroomsMax: z.optional(z
1452
+ .int()
1453
+ .min(-2147483648, {
1454
+ error: 'Invalid value: Expected int32 to be >= -2147483648',
1455
+ })
1456
+ .max(2147483647, {
1457
+ error: 'Invalid value: Expected int32 to be <= 2147483647',
1458
+ })),
1459
+ bathroomsMin: z.optional(z
1460
+ .int()
1461
+ .min(-2147483648, {
1462
+ error: 'Invalid value: Expected int32 to be >= -2147483648',
1463
+ })
1464
+ .max(2147483647, {
1465
+ error: 'Invalid value: Expected int32 to be <= 2147483647',
1466
+ })),
1467
+ bathroomsMax: z.optional(z
1468
+ .int()
1469
+ .min(-2147483648, {
1470
+ error: 'Invalid value: Expected int32 to be >= -2147483648',
1471
+ })
1472
+ .max(2147483647, {
1473
+ error: 'Invalid value: Expected int32 to be <= 2147483647',
1474
+ })),
1475
+ totalAreaMin: z.optional(z.number()),
1476
+ totalAreaMax: z.optional(z.number()),
1477
+ livingAreaMin: z.optional(z.number()),
1478
+ livingAreaMax: z.optional(z.number()),
1479
+ location: z.optional(zLocationRefRequest),
1480
+ active: z.boolean(),
1354
1481
  });
1355
- export const zPagedModelListingGridView = z.object({
1356
- content: z.optional(z.array(zListingGridView)),
1357
- page: z.optional(zPageMetadata),
1482
+ export const zColoredListingResponse = z.object({
1483
+ activatedAt: z.iso.date(),
1484
+ expiresAt: z.iso.date(),
1485
+ });
1486
+ export const zCommunicationPreferenceResponse = z.object({
1487
+ preferredContactMethod: z.optional(z.enum(['WHATSAPP', 'VIBER', 'PHONE_CALL'])),
1488
+ contactMethods: z.array(z.enum(['WHATSAPP', 'VIBER', 'PHONE_CALL'])),
1489
+ });
1490
+ export const zContactInfoResponse = z.object({
1491
+ firstName: z.optional(z.string()),
1492
+ lastName: z.optional(z.string()),
1493
+ gender: z.enum(['MALE', 'FEMALE', 'UNKNOWN']),
1494
+ phoneNumber: z.string(),
1495
+ email: z.optional(z.string()),
1358
1496
  });
1359
1497
  export const zDealResponse = z.object({
1360
- type: zCommissionTypeEnum,
1498
+ type: z.enum(['FIXED_SALE', 'FIXED_RENT', 'PERCENTAGE', 'MONTHS_OF_RENT']),
1361
1499
  rate: z.optional(z.number()),
1362
1500
  fixedAmount: z.optional(z.number()),
1363
1501
  months: z.optional(z.number()),
1364
1502
  commission: z.number(),
1365
1503
  });
1504
+ export const zPlatformListingResponse = z.object({
1505
+ platformId: z.coerce
1506
+ .bigint()
1507
+ .min(BigInt('-9223372036854775808'), {
1508
+ error: 'Invalid value: Expected int64 to be >= -9223372036854775808',
1509
+ })
1510
+ .max(BigInt('9223372036854775807'), {
1511
+ error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1512
+ }),
1513
+ platformType: z.enum(['SS', 'MY_HOME']),
1514
+ uploadDate: z.iso.date(),
1515
+ expiryDate: z.iso.date(),
1516
+ renewedDate: z.optional(z.iso.date()),
1517
+ boost: z.optional(zActiveBoostResponse),
1518
+ coloredListing: z.optional(zColoredListingResponse),
1519
+ });
1366
1520
  export const zClientListingsResponse = z.object({
1367
1521
  publicId: z.coerce
1368
1522
  .bigint()
@@ -1373,11 +1527,27 @@ export const zClientListingsResponse = z.object({
1373
1527
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1374
1528
  }),
1375
1529
  listingId: z.uuid(),
1376
- listingType: zSchemaEnum7,
1530
+ listingType: z.enum(['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE']),
1377
1531
  price: z.number(),
1378
1532
  deal: z.optional(zDealResponse),
1379
1533
  platformListings: z.array(zPlatformListingResponse),
1380
1534
  });
1535
+ export const zPropertyDetailsResponse = z.object({
1536
+ title: z.string(),
1537
+ coverPhoto: z.optional(z.string()),
1538
+ photoCount: z.optional(z
1539
+ .int()
1540
+ .min(-2147483648, {
1541
+ error: 'Invalid value: Expected int32 to be >= -2147483648',
1542
+ })
1543
+ .max(2147483647, {
1544
+ error: 'Invalid value: Expected int32 to be <= 2147483647',
1545
+ })),
1546
+ totalArea: z.number(),
1547
+ livingArea: z.optional(z.number()),
1548
+ balconyArea: z.optional(z.number()),
1549
+ address: zAddressResponse,
1550
+ });
1381
1551
  export const zClientPropertyResponse = z.object({
1382
1552
  publicId: z.coerce
1383
1553
  .bigint()
@@ -1388,12 +1558,43 @@ export const zClientPropertyResponse = z.object({
1388
1558
  error: 'Invalid value: Expected int64 to be <= 9223372036854775807',
1389
1559
  }),
1390
1560
  propertyId: z.uuid(),
1391
- type: zSchemaEnum6,
1392
- state: zSchemaEnum4,
1561
+ type: z.enum([
1562
+ 'HOUSE',
1563
+ 'TOWN_HOUSE',
1564
+ 'COUNTRY_HOUSE',
1565
+ 'VILLA',
1566
+ 'COTTAGE',
1567
+ 'APARTMENT',
1568
+ 'DUPLEX',
1569
+ 'TRIPLEX',
1570
+ 'SEMI_BASEMENT',
1571
+ 'ATTIC',
1572
+ 'AGRICULTURAL_LAND',
1573
+ 'RESIDENTIAL_LAND',
1574
+ 'HOTEL_ROOM',
1575
+ 'MOTEL_ROOM',
1576
+ 'CO_LIVING_SPACE',
1577
+ 'OFFICE',
1578
+ 'COMMERCIAL_SPACE',
1579
+ 'CO_WORKING_SPACE',
1580
+ 'WAREHOUSE',
1581
+ 'GARAGE',
1582
+ ]),
1583
+ state: z.enum([
1584
+ 'IN_REGISTRATION',
1585
+ 'UNLISTED',
1586
+ 'LISTED_INTERNALLY',
1587
+ 'LISTED',
1588
+ 'CLOSED',
1589
+ ]),
1393
1590
  details: z.optional(zPropertyDetailsResponse),
1394
1591
  agreement: zAgreementResponse,
1395
1592
  listings: z.array(zClientListingsResponse),
1396
1593
  });
1594
+ export const zSourceResponse = z.object({
1595
+ sourceType: z.enum(['MY_HOME', 'SS', 'HOME_SPOT', 'UNKNOWN']),
1596
+ sourceLink: z.optional(z.string()),
1597
+ });
1397
1598
  export const zClient360Response = z.object({
1398
1599
  clientId: z.coerce
1399
1600
  .bigint()
@@ -1412,65 +1613,36 @@ export const zClient360Response = z.object({
1412
1613
  communicationPreference: z.optional(zCommunicationPreferenceResponse),
1413
1614
  isSearching: z.boolean(),
1414
1615
  isListing: z.boolean(),
1415
- priority: z.optional(zPriorityEnum),
1616
+ priority: z.optional(z.enum(['CRITICAL', 'HIGH', 'MEDIUM', 'LOW'])),
1416
1617
  createdAt: z.iso.datetime(),
1417
1618
  updatedAt: z.iso.datetime(),
1418
1619
  interests: z.array(zClientInterestResponse),
1419
1620
  properties: z.array(zClientPropertyResponse),
1420
1621
  });
1421
- export const zStatusEnum = z.enum([
1422
- 'DRAFT',
1423
- 'AWAITING_CLIENT_REVIEW',
1424
- 'CLOSED',
1425
- ]);
1426
- export const zRecommendationResponse = z.object({
1427
- recommendationsId: z.uuid(),
1428
- title: z.string(),
1429
- createdAt: z.iso.datetime(),
1430
- status: zStatusEnum,
1431
- recommendations: zPagedModelRecommendationsCardView,
1432
- });
1433
- export const zGroupEnum = z.enum([
1434
- 'AGENCY',
1435
- 'INVITATION',
1436
- 'ROLE',
1437
- 'MEMBER',
1438
- 'LEAD',
1439
- 'CLIENT',
1440
- 'PROPERTY',
1441
- ]);
1442
- export const zGroupedPermissionsResponse = z.object({
1443
- group: zGroupEnum,
1444
- permissions: z.array(zPermissionResponse),
1445
- });
1446
- export const zStatusEnum2 = z.enum([
1447
- 'PENDING',
1448
- 'ACCEPTED',
1449
- 'CANCELLED',
1450
- 'EXPIRED',
1451
- ]);
1452
- export const zInvitationDetailsResponse = z.object({
1453
- invitationId: z.uuid(),
1454
- agencyId: z.uuid(),
1455
- email: z.string(),
1456
- status: zStatusEnum2,
1622
+ export const zAddressViewResponse = z.object({
1623
+ country: z.string(),
1624
+ city: z.string(),
1625
+ district: z.string(),
1626
+ subdistrict: z.string(),
1627
+ street: z.string(),
1457
1628
  });
1458
- export const zInvitationViewResponse = z.object({
1459
- invitationId: z.uuid(),
1629
+ export const zAgencyProfileResponse = z.object({
1630
+ name: z.string(),
1460
1631
  email: z.string(),
1461
- status: zStatusEnum2,
1462
- createdAt: z.iso.datetime(),
1463
- expiresAt: z.iso.datetime(),
1464
- acceptedAt: z.optional(z.iso.datetime()),
1465
- acceptedBy: z.optional(z.string()),
1466
- });
1467
- export const zPagedModelInvitationViewResponse = z.object({
1468
- content: z.optional(z.array(zInvitationViewResponse)),
1469
- page: z.optional(zPageMetadata),
1632
+ seats: z
1633
+ .int()
1634
+ .min(-2147483648, {
1635
+ error: 'Invalid value: Expected int32 to be >= -2147483648',
1636
+ })
1637
+ .max(2147483647, {
1638
+ error: 'Invalid value: Expected int32 to be <= 2147483647',
1639
+ }),
1640
+ subdomain: z.string(),
1641
+ phone: z.string(),
1642
+ address: zAddressViewResponse,
1470
1643
  });
1471
- export const zStatusEnum3 = z.enum(['ACTIVE', 'INACTIVE', 'NOT_FOUND']);
1472
1644
  export const zWhitelabelActiveResponse = z.object({
1473
- status: z.optional(zStatusEnum3),
1645
+ status: z.optional(z.enum(['ACTIVE', 'INACTIVE', 'NOT_FOUND'])),
1474
1646
  });
1475
1647
  export const zPutWhitelabelWebsiteData = z.object({
1476
1648
  body: zWebsiteRequest,
@@ -2553,7 +2725,7 @@ export const zGetPublicRecomendationsByRecommendationsIdItemsData = z.object({
2553
2725
  recommendationsId: z.uuid(),
2554
2726
  }),
2555
2727
  query: z.optional(z.object({
2556
- decision: z.optional(zSchemaEnum),
2728
+ decision: z.optional(z.enum(['MAYBE', 'DISLIKE', 'LIKE', 'VISIT'])),
2557
2729
  page: z.optional(z.int().gte(0)).default(0),
2558
2730
  size: z.optional(z.int().gte(1)).default(20),
2559
2731
  sort: z.optional(z.array(z.string())),
@@ -2608,7 +2780,7 @@ export const zGetPublicAgencyData = z.object({
2608
2780
  body: z.optional(z.never()),
2609
2781
  path: z.optional(z.never()),
2610
2782
  query: z.optional(z.object({
2611
- status: z.optional(zSchemaEnum2),
2783
+ status: z.optional(z.enum(['NEW', 'ACTIVE', 'PAYMENT_FAILED', 'INACTIVE'])),
2612
2784
  page: z.optional(z.int().gte(0)).default(0),
2613
2785
  size: z.optional(z.int().gte(1)).default(10),
2614
2786
  sort: z.optional(z.array(z.string())).default(['name,ASC']),
@@ -2661,7 +2833,24 @@ export const zGetMemberData = z.object({
2661
2833
  .max(2147483647, {
2662
2834
  error: 'Invalid value: Expected int32 to be <= 2147483647',
2663
2835
  })),
2664
- permission: z.optional(zSchemaEnum3),
2836
+ permission: z.optional(z.enum([
2837
+ 'AGENCY_WRITE',
2838
+ 'INVITATION_READ',
2839
+ 'INVITATION_WRITE',
2840
+ 'ROLE_READ',
2841
+ 'ROLE_WRITE',
2842
+ 'MEMBER_READ',
2843
+ 'MEMBER_WRITE',
2844
+ 'LEAD_READ',
2845
+ 'LEAD_WRITE',
2846
+ 'LEAD_READ_ALL',
2847
+ 'LEAD_WRITE_ALL',
2848
+ 'CLIENT_READ',
2849
+ 'CLIENT_WRITE',
2850
+ 'CLIENT_READ_ALL',
2851
+ 'CLIENT_WRITE_ALL',
2852
+ 'PROPERTY_READ_ALL',
2853
+ ])),
2665
2854
  sort: z.optional(z.array(z.string())).default(['firstName,ASC']),
2666
2855
  })),
2667
2856
  });
@@ -2673,12 +2862,39 @@ export const zGetListingData = z.object({
2673
2862
  body: z.optional(z.never()),
2674
2863
  path: z.optional(z.never()),
2675
2864
  query: z.optional(z.object({
2676
- state: z.optional(zSchemaEnum4),
2677
- agreementType: z.optional(zSchemaEnum5),
2865
+ state: z.optional(z.enum([
2866
+ 'IN_REGISTRATION',
2867
+ 'UNLISTED',
2868
+ 'LISTED_INTERNALLY',
2869
+ 'LISTED',
2870
+ 'CLOSED',
2871
+ ])),
2872
+ agreementType: z.optional(z.enum(['EXCLUSIVE', 'NON_EXCLUSIVE'])),
2678
2873
  agreementExpiresFrom: z.optional(z.iso.date()),
2679
2874
  agreementExpiresTo: z.optional(z.iso.date()),
2680
- propertyType: z.optional(zSchemaEnum6),
2681
- listingType: z.optional(zSchemaEnum7),
2875
+ propertyType: z.optional(z.enum([
2876
+ 'HOUSE',
2877
+ 'TOWN_HOUSE',
2878
+ 'COUNTRY_HOUSE',
2879
+ 'VILLA',
2880
+ 'COTTAGE',
2881
+ 'APARTMENT',
2882
+ 'DUPLEX',
2883
+ 'TRIPLEX',
2884
+ 'SEMI_BASEMENT',
2885
+ 'ATTIC',
2886
+ 'AGRICULTURAL_LAND',
2887
+ 'RESIDENTIAL_LAND',
2888
+ 'HOTEL_ROOM',
2889
+ 'MOTEL_ROOM',
2890
+ 'CO_LIVING_SPACE',
2891
+ 'OFFICE',
2892
+ 'COMMERCIAL_SPACE',
2893
+ 'CO_WORKING_SPACE',
2894
+ 'WAREHOUSE',
2895
+ 'GARAGE',
2896
+ ])),
2897
+ listingType: z.optional(z.enum(['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE'])),
2682
2898
  clientId: z.optional(z.coerce
2683
2899
  .bigint()
2684
2900
  .min(BigInt('-9223372036854775808'), {
@@ -2723,10 +2939,10 @@ export const zGetListingData = z.object({
2723
2939
  priceMax: z.optional(z.number()),
2724
2940
  createdFrom: z.optional(z.iso.datetime()),
2725
2941
  createdTo: z.optional(z.iso.datetime()),
2726
- platform: z.optional(zSchemaEnum8),
2942
+ platform: z.optional(z.enum(['SS', 'MY_HOME'])),
2727
2943
  platformExpiresFrom: z.optional(z.iso.date()),
2728
2944
  platformExpiresTo: z.optional(z.iso.date()),
2729
- boostTier: z.optional(zSchemaEnum9),
2945
+ boostTier: z.optional(z.enum(['VIP', 'VIP_PLUS', 'SUPER_VIP'])),
2730
2946
  hasBoosted: z.optional(z.boolean()),
2731
2947
  boostExpiresFrom: z.optional(z.iso.date()),
2732
2948
  boostExpiresTo: z.optional(z.iso.date()),
@@ -2761,13 +2977,50 @@ export const zGetListingGroupsData = z.object({
2761
2977
  body: z.optional(z.never()),
2762
2978
  path: z.optional(z.never()),
2763
2979
  query: z.object({
2764
- groupBy: zSchemaEnum10,
2765
- state: z.optional(zSchemaEnum4),
2766
- agreementType: z.optional(zSchemaEnum5),
2980
+ groupBy: z.enum([
2981
+ 'STATE',
2982
+ 'PROPERTY_TYPE',
2983
+ 'LISTING_TYPE',
2984
+ 'REGION',
2985
+ 'PLATFORM',
2986
+ 'BOOST_TIER',
2987
+ 'CREATED_AT_DAY',
2988
+ 'CREATED_AT_WEEK',
2989
+ 'CREATED_AT_MONTH',
2990
+ ]),
2991
+ state: z.optional(z.enum([
2992
+ 'IN_REGISTRATION',
2993
+ 'UNLISTED',
2994
+ 'LISTED_INTERNALLY',
2995
+ 'LISTED',
2996
+ 'CLOSED',
2997
+ ])),
2998
+ agreementType: z.optional(z.enum(['EXCLUSIVE', 'NON_EXCLUSIVE'])),
2767
2999
  agreementExpiresFrom: z.optional(z.iso.date()),
2768
3000
  agreementExpiresTo: z.optional(z.iso.date()),
2769
- propertyType: z.optional(zSchemaEnum6),
2770
- listingType: z.optional(zSchemaEnum7),
3001
+ propertyType: z.optional(z.enum([
3002
+ 'HOUSE',
3003
+ 'TOWN_HOUSE',
3004
+ 'COUNTRY_HOUSE',
3005
+ 'VILLA',
3006
+ 'COTTAGE',
3007
+ 'APARTMENT',
3008
+ 'DUPLEX',
3009
+ 'TRIPLEX',
3010
+ 'SEMI_BASEMENT',
3011
+ 'ATTIC',
3012
+ 'AGRICULTURAL_LAND',
3013
+ 'RESIDENTIAL_LAND',
3014
+ 'HOTEL_ROOM',
3015
+ 'MOTEL_ROOM',
3016
+ 'CO_LIVING_SPACE',
3017
+ 'OFFICE',
3018
+ 'COMMERCIAL_SPACE',
3019
+ 'CO_WORKING_SPACE',
3020
+ 'WAREHOUSE',
3021
+ 'GARAGE',
3022
+ ])),
3023
+ listingType: z.optional(z.enum(['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE'])),
2771
3024
  clientId: z.optional(z.coerce
2772
3025
  .bigint()
2773
3026
  .min(BigInt('-9223372036854775808'), {
@@ -2812,10 +3065,10 @@ export const zGetListingGroupsData = z.object({
2812
3065
  priceMax: z.optional(z.number()),
2813
3066
  createdFrom: z.optional(z.iso.datetime()),
2814
3067
  createdTo: z.optional(z.iso.datetime()),
2815
- platform: z.optional(zSchemaEnum8),
3068
+ platform: z.optional(z.enum(['SS', 'MY_HOME'])),
2816
3069
  platformExpiresFrom: z.optional(z.iso.date()),
2817
3070
  platformExpiresTo: z.optional(z.iso.date()),
2818
- boostTier: z.optional(zSchemaEnum9),
3071
+ boostTier: z.optional(z.enum(['VIP', 'VIP_PLUS', 'SUPER_VIP'])),
2819
3072
  hasBoosted: z.optional(z.boolean()),
2820
3073
  boostExpiresFrom: z.optional(z.iso.date()),
2821
3074
  boostExpiresTo: z.optional(z.iso.date()),
@@ -2829,7 +3082,7 @@ export const zGetLeadData = z.object({
2829
3082
  body: z.optional(z.never()),
2830
3083
  path: z.optional(z.never()),
2831
3084
  query: z.optional(z.object({
2832
- status: z.optional(zSchemaEnum11),
3085
+ status: z.optional(z.enum(['NEW', 'ON_HOLD', 'LOST', 'CONVERTED'])),
2833
3086
  isSearching: z.optional(z.boolean()),
2834
3087
  isListing: z.optional(z.boolean()),
2835
3088
  assignedTo: z.optional(z.uuid()),
@@ -2837,7 +3090,7 @@ export const zGetLeadData = z.object({
2837
3090
  contactName: z.optional(z.string()),
2838
3091
  email: z.optional(z.string()),
2839
3092
  note: z.optional(z.string()),
2840
- sourceType: z.optional(zSchemaEnum12),
3093
+ sourceType: z.optional(z.enum(['MY_HOME', 'SS', 'HOME_SPOT', 'UNKNOWN'])),
2841
3094
  createdFrom: z.optional(z.iso.datetime()),
2842
3095
  createdTo: z.optional(z.iso.datetime()),
2843
3096
  page: z.optional(z.int().gte(0)).default(0),
@@ -2871,14 +3124,14 @@ export const zGetLeadMineData = z.object({
2871
3124
  body: z.optional(z.never()),
2872
3125
  path: z.optional(z.never()),
2873
3126
  query: z.optional(z.object({
2874
- status: z.optional(zSchemaEnum11),
3127
+ status: z.optional(z.enum(['NEW', 'ON_HOLD', 'LOST', 'CONVERTED'])),
2875
3128
  isSearching: z.optional(z.boolean()),
2876
3129
  isListing: z.optional(z.boolean()),
2877
3130
  phone: z.optional(z.string()),
2878
3131
  contactName: z.optional(z.string()),
2879
3132
  email: z.optional(z.string()),
2880
3133
  note: z.optional(z.string()),
2881
- sourceType: z.optional(zSchemaEnum12),
3134
+ sourceType: z.optional(z.enum(['MY_HOME', 'SS', 'HOME_SPOT', 'UNKNOWN'])),
2882
3135
  createdFrom: z.optional(z.iso.datetime()),
2883
3136
  createdTo: z.optional(z.iso.datetime()),
2884
3137
  page: z.optional(z.int().gte(0)).default(0),
@@ -2894,8 +3147,15 @@ export const zGetLeadGroupsData = z.object({
2894
3147
  body: z.optional(z.never()),
2895
3148
  path: z.optional(z.never()),
2896
3149
  query: z.object({
2897
- groupBy: zSchemaEnum13,
2898
- status: z.optional(zSchemaEnum11),
3150
+ groupBy: z.enum([
3151
+ 'ASSIGNED_TO',
3152
+ 'STATUS',
3153
+ 'SOURCE_TYPE',
3154
+ 'CREATED_AT_DAY',
3155
+ 'CREATED_AT_WEEK',
3156
+ 'CREATED_AT_MONTH',
3157
+ ]),
3158
+ status: z.optional(z.enum(['NEW', 'ON_HOLD', 'LOST', 'CONVERTED'])),
2899
3159
  isSearching: z.optional(z.boolean()),
2900
3160
  isListing: z.optional(z.boolean()),
2901
3161
  assignedTo: z.optional(z.uuid()),
@@ -2903,7 +3163,7 @@ export const zGetLeadGroupsData = z.object({
2903
3163
  contactName: z.optional(z.string()),
2904
3164
  email: z.optional(z.string()),
2905
3165
  note: z.optional(z.string()),
2906
- sourceType: z.optional(zSchemaEnum12),
3166
+ sourceType: z.optional(z.enum(['MY_HOME', 'SS', 'HOME_SPOT', 'UNKNOWN'])),
2907
3167
  createdFrom: z.optional(z.iso.datetime()),
2908
3168
  createdTo: z.optional(z.iso.datetime()),
2909
3169
  }),
@@ -2926,7 +3186,7 @@ export const zGetClientsByClientIdRecommendationsByRecommendationsIdData = z.obj
2926
3186
  recommendationsId: z.uuid(),
2927
3187
  }),
2928
3188
  query: z.optional(z.object({
2929
- decision: z.optional(zSchemaEnum),
3189
+ decision: z.optional(z.enum(['MAYBE', 'DISLIKE', 'LIKE', 'VISIT'])),
2930
3190
  page: z.optional(z.int().gte(0)).default(0),
2931
3191
  size: z.optional(z.int().gte(1)).default(20),
2932
3192
  sort: z.optional(z.array(z.string())),
@@ -2957,7 +3217,7 @@ export const zGetClientsByClientIdRecommendationsInterestByInterestIdData = z.ob
2957
3217
  }),
2958
3218
  }),
2959
3219
  query: z.optional(z.object({
2960
- decision: z.optional(zSchemaEnum),
3220
+ decision: z.optional(z.enum(['MAYBE', 'DISLIKE', 'LIKE', 'VISIT'])),
2961
3221
  page: z.optional(z.int().gte(0)).default(0),
2962
3222
  size: z.optional(z.int().gte(1)).default(20),
2963
3223
  sort: z.optional(z.array(z.string())),