@homespot-sdk/core 0.0.362 → 0.0.364

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 (36) hide show
  1. package/dist/property/client.gen.d.ts.map +1 -1
  2. package/dist/property/client.gen.js +1 -3
  3. package/dist/property/client.gen.js.map +1 -1
  4. package/dist/property/types.gen.d.ts +1 -1
  5. package/dist/property/types.gen.d.ts.map +1 -1
  6. package/dist/rem/client.gen.d.ts.map +1 -1
  7. package/dist/rem/client.gen.js +1 -3
  8. package/dist/rem/client.gen.js.map +1 -1
  9. package/dist/rem/index.d.ts +2 -2
  10. package/dist/rem/index.d.ts.map +1 -1
  11. package/dist/rem/index.js +1 -1
  12. package/dist/rem/index.js.map +1 -1
  13. package/dist/rem/schemas.gen.d.ts +916 -67
  14. package/dist/rem/schemas.gen.d.ts.map +1 -1
  15. package/dist/rem/schemas.gen.js +1095 -90
  16. package/dist/rem/schemas.gen.js.map +1 -1
  17. package/dist/rem/sdk.gen.d.ts +20 -13
  18. package/dist/rem/sdk.gen.d.ts.map +1 -1
  19. package/dist/rem/sdk.gen.js +55 -11
  20. package/dist/rem/sdk.gen.js.map +1 -1
  21. package/dist/rem/transformers.gen.d.ts +3 -2
  22. package/dist/rem/transformers.gen.d.ts.map +1 -1
  23. package/dist/rem/transformers.gen.js +37 -4
  24. package/dist/rem/transformers.gen.js.map +1 -1
  25. package/dist/rem/types.gen.d.ts +561 -52
  26. package/dist/rem/types.gen.d.ts.map +1 -1
  27. package/dist/rem/zod.gen.d.ts +1513 -214
  28. package/dist/rem/zod.gen.d.ts.map +1 -1
  29. package/dist/rem/zod.gen.js +933 -70
  30. package/dist/rem/zod.gen.js.map +1 -1
  31. package/dist/utils/client.gen.d.ts.map +1 -1
  32. package/dist/utils/client.gen.js +1 -3
  33. package/dist/utils/client.gen.js.map +1 -1
  34. package/dist/utils/types.gen.d.ts +1 -1
  35. package/dist/utils/types.gen.d.ts.map +1 -1
  36. package/package.json +1 -1
@@ -820,6 +820,49 @@ export const UploadAcknowledgmentResponseSchema = {
820
820
  },
821
821
  required: ['fail', 'success'],
822
822
  };
823
+ export const PlanLimitResponseSchema = {
824
+ type: 'object',
825
+ properties: {
826
+ type: {
827
+ type: 'string',
828
+ format: 'uri',
829
+ },
830
+ title: {
831
+ type: 'string',
832
+ },
833
+ status: {
834
+ type: 'integer',
835
+ format: 'int32',
836
+ },
837
+ detail: {
838
+ type: 'string',
839
+ },
840
+ instance: {
841
+ type: 'string',
842
+ format: 'uri',
843
+ },
844
+ limit: {
845
+ type: 'string',
846
+ enum: [
847
+ 'SEATS',
848
+ 'ACTIVE_LISTINGS',
849
+ 'SOCIAL_POSTS',
850
+ 'AGENCY_BRANDING',
851
+ ],
852
+ },
853
+ used: {
854
+ type: 'integer',
855
+ format: 'int32',
856
+ description: 'How many are in use now; absent for a feature',
857
+ },
858
+ allowed: {
859
+ type: 'integer',
860
+ format: 'int32',
861
+ description: 'How many the plan allows; absent for a feature',
862
+ },
863
+ },
864
+ required: ['limit'],
865
+ };
823
866
  export const ConnectLinkResponseSchema = {
824
867
  type: 'object',
825
868
  properties: {
@@ -925,10 +968,12 @@ export const SubscribeRequestSchema = {
925
968
  properties: {
926
969
  plan: {
927
970
  type: 'string',
928
- enum: ['STARTER', 'PRO', 'ENTERPRISE'],
971
+ description: 'PLUS or PRO to check out right away, FREE to start on Free without the trial; absent to start on the trial only',
972
+ enum: ['FREE', 'PLUS', 'PRO', 'ENTERPRISE'],
929
973
  },
930
974
  billingCycle: {
931
975
  type: 'string',
976
+ description: 'Required with PLUS or PRO',
932
977
  enum: ['MONTHLY', 'ANNUAL'],
933
978
  },
934
979
  name: {
@@ -952,15 +997,7 @@ export const SubscribeRequestSchema = {
952
997
  $ref: '#/components/schemas/SubscriptionAddressRequest',
953
998
  },
954
999
  },
955
- required: [
956
- 'address',
957
- 'billingCycle',
958
- 'email',
959
- 'name',
960
- 'phone',
961
- 'plan',
962
- 'subdomain',
963
- ],
1000
+ required: ['address', 'email', 'name', 'phone', 'subdomain'],
964
1001
  };
965
1002
  export const SubscriptionAddressRequestSchema = {
966
1003
  type: 'object',
@@ -998,7 +1035,7 @@ export const SubscriptionCheckoutResponseSchema = {
998
1035
  properties: {
999
1036
  checkoutUrl: {
1000
1037
  type: 'string',
1001
- description: 'Null when payment is already confirmed; continue onboarding without paying again',
1038
+ description: 'Null when payment is already confirmed, or a signup picked no plan',
1002
1039
  },
1003
1040
  agencyId: {
1004
1041
  type: 'string',
@@ -1007,6 +1044,7 @@ export const SubscriptionCheckoutResponseSchema = {
1007
1044
  subscriptionId: {
1008
1045
  type: 'string',
1009
1046
  format: 'uuid',
1047
+ description: 'Null for a signup that picked no plan: the agency is on its trial',
1010
1048
  },
1011
1049
  status: {
1012
1050
  type: 'string',
@@ -1027,7 +1065,7 @@ export const ChangePlanRequestSchema = {
1027
1065
  properties: {
1028
1066
  plan: {
1029
1067
  type: 'string',
1030
- enum: ['STARTER', 'PRO', 'ENTERPRISE'],
1068
+ enum: ['FREE', 'PLUS', 'PRO', 'ENTERPRISE'],
1031
1069
  },
1032
1070
  billingCycle: {
1033
1071
  type: 'string',
@@ -1041,7 +1079,7 @@ export const CheckoutRequestSchema = {
1041
1079
  properties: {
1042
1080
  plan: {
1043
1081
  type: 'string',
1044
- enum: ['STARTER', 'PRO', 'ENTERPRISE'],
1082
+ enum: ['FREE', 'PLUS', 'PRO', 'ENTERPRISE'],
1045
1083
  },
1046
1084
  billingCycle: {
1047
1085
  type: 'string',
@@ -1059,6 +1097,282 @@ export const IdResponseIntegerSchema = {
1059
1097
  },
1060
1098
  required: ['id'],
1061
1099
  };
1100
+ export const AddressNamesSchema = {
1101
+ type: 'object',
1102
+ properties: {
1103
+ region: {
1104
+ type: 'object',
1105
+ additionalProperties: {
1106
+ type: 'string',
1107
+ },
1108
+ },
1109
+ district: {
1110
+ type: 'object',
1111
+ additionalProperties: {
1112
+ type: 'string',
1113
+ },
1114
+ },
1115
+ subdistrict: {
1116
+ type: 'object',
1117
+ additionalProperties: {
1118
+ type: 'string',
1119
+ },
1120
+ },
1121
+ street: {
1122
+ type: 'object',
1123
+ additionalProperties: {
1124
+ type: 'string',
1125
+ },
1126
+ },
1127
+ },
1128
+ };
1129
+ export const AddressRefSchema = {
1130
+ type: 'object',
1131
+ properties: {
1132
+ regionId: {
1133
+ type: 'integer',
1134
+ format: 'int64',
1135
+ },
1136
+ districtId: {
1137
+ type: 'integer',
1138
+ format: 'int64',
1139
+ },
1140
+ subdistrictId: {
1141
+ type: 'integer',
1142
+ format: 'int64',
1143
+ },
1144
+ streetId: {
1145
+ type: 'integer',
1146
+ format: 'int64',
1147
+ },
1148
+ names: {
1149
+ $ref: '#/components/schemas/AddressNames',
1150
+ },
1151
+ cadastreCode: {
1152
+ type: 'string',
1153
+ },
1154
+ coordinates: {
1155
+ $ref: '#/components/schemas/Coordinates',
1156
+ },
1157
+ },
1158
+ };
1159
+ export const CoordinatesSchema = {
1160
+ type: 'object',
1161
+ properties: {
1162
+ lat: {
1163
+ type: 'number',
1164
+ format: 'double',
1165
+ },
1166
+ lng: {
1167
+ type: 'number',
1168
+ format: 'double',
1169
+ },
1170
+ },
1171
+ };
1172
+ export const OfferSchema = {
1173
+ type: 'object',
1174
+ properties: {
1175
+ deal: {
1176
+ type: 'string',
1177
+ enum: ['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE'],
1178
+ },
1179
+ price: {
1180
+ type: 'number',
1181
+ },
1182
+ },
1183
+ required: ['deal', 'price'],
1184
+ };
1185
+ export const PhotoInternalRequestSchema = {
1186
+ type: 'object',
1187
+ properties: {
1188
+ photo: {
1189
+ type: 'string',
1190
+ maxLength: 255,
1191
+ minLength: 0,
1192
+ },
1193
+ width: {
1194
+ type: 'integer',
1195
+ format: 'int32',
1196
+ maximum: 11000,
1197
+ minimum: 10,
1198
+ },
1199
+ height: {
1200
+ type: 'integer',
1201
+ format: 'int32',
1202
+ maximum: 11000,
1203
+ minimum: 10,
1204
+ },
1205
+ },
1206
+ required: ['photo', 'width'],
1207
+ };
1208
+ export const PropertyCreationRequestSchema = {
1209
+ type: 'object',
1210
+ properties: {
1211
+ draftId: {
1212
+ type: 'string',
1213
+ format: 'uuid',
1214
+ },
1215
+ contactId: {
1216
+ type: 'integer',
1217
+ format: 'int64',
1218
+ },
1219
+ propertyType: {
1220
+ type: 'string',
1221
+ enum: [
1222
+ 'HOUSE',
1223
+ 'TOWN_HOUSE',
1224
+ 'COUNTRY_HOUSE',
1225
+ 'VILLA',
1226
+ 'COTTAGE',
1227
+ 'APARTMENT',
1228
+ 'DUPLEX',
1229
+ 'TRIPLEX',
1230
+ 'SEMI_BASEMENT',
1231
+ 'ATTIC',
1232
+ 'AGRICULTURAL_LAND',
1233
+ 'RESIDENTIAL_LAND',
1234
+ 'HOTEL_ROOM',
1235
+ 'MOTEL_ROOM',
1236
+ 'CO_LIVING_SPACE',
1237
+ 'OFFICE',
1238
+ 'COMMERCIAL_SPACE',
1239
+ 'CO_WORKING_SPACE',
1240
+ 'WAREHOUSE',
1241
+ 'GARAGE',
1242
+ ],
1243
+ },
1244
+ address: {
1245
+ $ref: '#/components/schemas/AddressRef',
1246
+ },
1247
+ photoUrls: {
1248
+ type: 'array',
1249
+ items: {
1250
+ $ref: '#/components/schemas/PhotoInternalRequest',
1251
+ },
1252
+ maxItems: 2147483647,
1253
+ minItems: 5,
1254
+ },
1255
+ spaces: {
1256
+ type: 'object',
1257
+ additionalProperties: {
1258
+ type: 'array',
1259
+ items: {
1260
+ type: 'number',
1261
+ format: 'double',
1262
+ },
1263
+ },
1264
+ description: 'Areas per space type. A null entry records a space whose area is unknown.',
1265
+ example: {
1266
+ BATHROOM: [5, 8],
1267
+ BEDROOM: [15.5, null, 22],
1268
+ LIVING_ROOM: [52.5],
1269
+ KITCHEN: [20.5],
1270
+ },
1271
+ },
1272
+ totalArea: {
1273
+ type: 'number',
1274
+ format: 'double',
1275
+ },
1276
+ livingArea: {
1277
+ type: 'number',
1278
+ format: 'double',
1279
+ },
1280
+ balconyArea: {
1281
+ type: 'number',
1282
+ format: 'double',
1283
+ },
1284
+ status: {
1285
+ type: 'string',
1286
+ enum: [
1287
+ 'OLD_BUILDING',
1288
+ 'NEW_BUILDING',
1289
+ 'UNDER_CONSTRUCTION',
1290
+ 'FINISHED',
1291
+ ],
1292
+ },
1293
+ condition: {
1294
+ type: 'string',
1295
+ enum: [
1296
+ 'NEWLY_RENOVATED',
1297
+ 'OLD_RENOVATED',
1298
+ 'CURRENT_RENOVATION',
1299
+ 'REPAIRING',
1300
+ 'WHITE_FRAME',
1301
+ 'BLACK_FRAME',
1302
+ 'GREEN_FRAME',
1303
+ 'WHITE_PLUS',
1304
+ ],
1305
+ },
1306
+ totalFloors: {
1307
+ type: 'integer',
1308
+ format: 'int32',
1309
+ },
1310
+ floorAt: {
1311
+ type: 'integer',
1312
+ format: 'int32',
1313
+ },
1314
+ amenities: {
1315
+ type: 'array',
1316
+ items: {
1317
+ type: 'integer',
1318
+ format: 'int32',
1319
+ },
1320
+ },
1321
+ title: {
1322
+ type: 'string',
1323
+ minLength: 1,
1324
+ },
1325
+ description: {
1326
+ type: 'object',
1327
+ additionalProperties: {
1328
+ type: 'string',
1329
+ },
1330
+ example: {
1331
+ ka: 'example ka',
1332
+ en: 'example en',
1333
+ ru: 'example ru',
1334
+ },
1335
+ minProperties: 1,
1336
+ },
1337
+ },
1338
+ required: [
1339
+ 'address',
1340
+ 'amenities',
1341
+ 'description',
1342
+ 'draftId',
1343
+ 'photoUrls',
1344
+ 'propertyType',
1345
+ 'spaces',
1346
+ 'title',
1347
+ 'totalArea',
1348
+ ],
1349
+ };
1350
+ export const SubmissionSchema = {
1351
+ type: 'object',
1352
+ properties: {
1353
+ property: {
1354
+ $ref: '#/components/schemas/PropertyCreationRequest',
1355
+ },
1356
+ offer: {
1357
+ $ref: '#/components/schemas/Offer',
1358
+ },
1359
+ },
1360
+ required: ['property'],
1361
+ };
1362
+ export const PhotosRequestSchema = {
1363
+ type: 'object',
1364
+ properties: {
1365
+ photos: {
1366
+ type: 'array',
1367
+ items: {
1368
+ $ref: '#/components/schemas/PhotoRequest',
1369
+ },
1370
+ maxItems: 30,
1371
+ minItems: 1,
1372
+ },
1373
+ },
1374
+ required: ['photos'],
1375
+ };
1062
1376
  export const ContactInfoRequestSchema = {
1063
1377
  type: 'object',
1064
1378
  properties: {
@@ -2106,82 +2420,77 @@ export const AddTodoTemplateRequestSchema = {
2106
2420
  },
2107
2421
  required: ['applyToTasksInStage', 'title'],
2108
2422
  };
2109
- export const ProvisionAgencyRequestSchema = {
2423
+ export const AdminCheckoutRequestSchema = {
2110
2424
  type: 'object',
2111
2425
  properties: {
2112
- ownerUserId: {
2113
- type: 'string',
2114
- description: "The customer's existing user account id",
2115
- },
2116
- name: {
2426
+ agencyId: {
2117
2427
  type: 'string',
2428
+ format: 'uuid',
2118
2429
  },
2119
- email: {
2430
+ plan: {
2120
2431
  type: 'string',
2121
- format: 'email',
2432
+ enum: ['FREE', 'PLUS', 'PRO', 'ENTERPRISE'],
2122
2433
  },
2123
- phone: {
2434
+ billingCycle: {
2124
2435
  type: 'string',
2125
- },
2126
- subdomain: {
2127
- type: 'string',
2128
- },
2129
- address: {
2130
- $ref: '#/components/schemas/SubscriptionAddressRequest',
2131
- },
2132
- plan: {
2133
- type: 'string',
2134
- enum: ['STARTER', 'PRO', 'ENTERPRISE'],
2135
- },
2136
- billingCycle: {
2137
- type: 'string',
2138
- enum: ['MONTHLY', 'ANNUAL'],
2436
+ enum: ['MONTHLY', 'ANNUAL'],
2139
2437
  },
2140
2438
  priceMinorUnits: {
2141
2439
  type: 'integer',
2142
2440
  format: 'int64',
2143
- description: 'Exact per-cycle charge in minor units (tetri)',
2441
+ description: 'Exact per-cycle net price in minor units (tetri), VAT excluded',
2144
2442
  },
2145
2443
  seats: {
2146
2444
  type: 'integer',
2147
2445
  format: 'int32',
2148
2446
  },
2149
- monthlyContactLimit: {
2447
+ activeListings: {
2448
+ type: 'integer',
2449
+ format: 'int32',
2450
+ },
2451
+ aiMessages: {
2150
2452
  type: 'integer',
2151
2453
  format: 'int32',
2152
- description: 'Contacts the agency may create per calendar month',
2454
+ description: 'AI messages the agency shares each month; 0 means no AI',
2455
+ },
2456
+ features: {
2457
+ type: 'array',
2458
+ items: {
2459
+ type: 'string',
2460
+ enum: ['SOCIAL_POSTS', 'AGENCY_BRANDING'],
2461
+ },
2462
+ uniqueItems: true,
2153
2463
  },
2154
2464
  trialDays: {
2155
2465
  type: 'integer',
2156
2466
  format: 'int32',
2157
2467
  description: 'Free-trial days; 0 charges immediately',
2158
2468
  },
2469
+ discountMonths: {
2470
+ type: 'integer',
2471
+ format: 'int32',
2472
+ description: 'Months the price lasts (monthly billing only; the checkout charges the first). After them Flitt charges nothing more and the owner keeps the plan at its normal price by a plan change. Absent: until the plan changes',
2473
+ minimum: 2,
2474
+ },
2159
2475
  },
2160
2476
  required: [
2161
- 'address',
2477
+ 'activeListings',
2478
+ 'agencyId',
2479
+ 'aiMessages',
2162
2480
  'billingCycle',
2163
- 'email',
2164
- 'monthlyContactLimit',
2165
- 'name',
2166
- 'ownerUserId',
2167
- 'phone',
2481
+ 'features',
2168
2482
  'plan',
2169
2483
  'priceMinorUnits',
2170
2484
  'seats',
2171
- 'subdomain',
2172
2485
  'trialDays',
2173
2486
  ],
2174
2487
  };
2175
- export const AdminProvisionResponseSchema = {
2488
+ export const AdminCheckoutResponseSchema = {
2176
2489
  type: 'object',
2177
2490
  properties: {
2178
2491
  checkoutUrl: {
2179
2492
  type: 'string',
2180
2493
  },
2181
- agencyId: {
2182
- type: 'string',
2183
- format: 'uuid',
2184
- },
2185
2494
  subscriptionId: {
2186
2495
  type: 'string',
2187
2496
  format: 'uuid',
@@ -2273,12 +2582,17 @@ export const OrganizationSummaryViewResponseSchema = {
2273
2582
  isPhoneVerified: {
2274
2583
  type: 'boolean',
2275
2584
  },
2585
+ isSeatLocked: {
2586
+ type: 'boolean',
2587
+ description: "Past the seats the agency's plan has after a downgrade: locked out until the owner upgrades or removes a member",
2588
+ },
2276
2589
  },
2277
2590
  required: [
2278
2591
  'agencyId',
2279
2592
  'agencyName',
2280
2593
  'isOwner',
2281
2594
  'isPhoneVerified',
2595
+ 'isSeatLocked',
2282
2596
  'memberId',
2283
2597
  'permissions',
2284
2598
  'phone',
@@ -3471,7 +3785,7 @@ export const SubscriptionResponseSchema = {
3471
3785
  },
3472
3786
  plan: {
3473
3787
  type: 'string',
3474
- enum: ['STARTER', 'PRO', 'ENTERPRISE'],
3788
+ enum: ['FREE', 'PLUS', 'PRO', 'ENTERPRISE'],
3475
3789
  },
3476
3790
  billingCycle: {
3477
3791
  type: 'string',
@@ -3480,7 +3794,22 @@ export const SubscriptionResponseSchema = {
3480
3794
  priceMinorUnits: {
3481
3795
  type: 'integer',
3482
3796
  format: 'int64',
3483
- description: 'Per-cycle price in minor units (tetri)',
3797
+ description: 'Per-cycle charge in minor units (tetri), VAT included',
3798
+ },
3799
+ netMinorUnits: {
3800
+ type: 'integer',
3801
+ format: 'int64',
3802
+ description: 'The charge without VAT, in minor units',
3803
+ },
3804
+ vatMinorUnits: {
3805
+ type: 'integer',
3806
+ format: 'int64',
3807
+ description: 'The VAT inside the charge, in minor units',
3808
+ },
3809
+ vatPercent: {
3810
+ type: 'integer',
3811
+ format: 'int32',
3812
+ description: 'The VAT rate the subscription was sold at, in percent',
3484
3813
  },
3485
3814
  currency: {
3486
3815
  type: 'string',
@@ -3489,9 +3818,22 @@ export const SubscriptionResponseSchema = {
3489
3818
  type: 'integer',
3490
3819
  format: 'int32',
3491
3820
  },
3492
- monthlyContactLimit: {
3821
+ activeListings: {
3822
+ type: 'integer',
3823
+ format: 'int32',
3824
+ },
3825
+ aiMessages: {
3493
3826
  type: 'integer',
3494
3827
  format: 'int32',
3828
+ description: 'AI messages the agency shares each month; 0 means no AI',
3829
+ },
3830
+ features: {
3831
+ type: 'array',
3832
+ items: {
3833
+ type: 'string',
3834
+ enum: ['SOCIAL_POSTS', 'AGENCY_BRANDING'],
3835
+ },
3836
+ uniqueItems: true,
3495
3837
  },
3496
3838
  trialDays: {
3497
3839
  type: 'integer',
@@ -3551,21 +3893,125 @@ export const SubscriptionResponseSchema = {
3551
3893
  format: 'date-time',
3552
3894
  description: 'When the most recently issued checkout link stops being payable',
3553
3895
  },
3896
+ discountEndsAt: {
3897
+ type: 'string',
3898
+ format: 'date-time',
3899
+ description: 'Until when its discounted price applies; absent for any other price',
3900
+ },
3554
3901
  },
3555
3902
  required: [
3903
+ 'activeListings',
3904
+ 'aiMessages',
3556
3905
  'billingCycle',
3557
3906
  'createdAt',
3558
3907
  'currency',
3908
+ 'features',
3559
3909
  'live',
3560
- 'monthlyContactLimit',
3910
+ 'netMinorUnits',
3561
3911
  'plan',
3562
3912
  'priceMinorUnits',
3563
3913
  'seats',
3564
3914
  'status',
3565
3915
  'subscriptionId',
3566
3916
  'trialDays',
3917
+ 'vatMinorUnits',
3918
+ 'vatPercent',
3919
+ ],
3920
+ };
3921
+ export const AiMessagesSchema = {
3922
+ type: 'object',
3923
+ properties: {
3924
+ used: {
3925
+ type: 'integer',
3926
+ format: 'int64',
3927
+ },
3928
+ limit: {
3929
+ type: 'integer',
3930
+ format: 'int64',
3931
+ description: 'Shared by the whole agency',
3932
+ },
3933
+ resetsAt: {
3934
+ type: 'string',
3935
+ format: 'date-time',
3936
+ description: 'When the allowance renews: the next 1st in Tbilisi; absent during the trial, whose allowance covers all of it',
3937
+ },
3938
+ },
3939
+ required: ['limit', 'used'],
3940
+ };
3941
+ export const PlanResponseSchema = {
3942
+ type: 'object',
3943
+ properties: {
3944
+ plan: {
3945
+ type: 'string',
3946
+ enum: ['FREE', 'PLUS', 'PRO', 'ENTERPRISE'],
3947
+ },
3948
+ canManage: {
3949
+ type: 'boolean',
3950
+ description: 'Whether the caller may change the plan: the owner',
3951
+ },
3952
+ trial: {
3953
+ $ref: '#/components/schemas/Trial',
3954
+ description: 'Present only during the trial every new agency starts with',
3955
+ },
3956
+ subscription: {
3957
+ $ref: '#/components/schemas/SubscriptionResponse',
3958
+ description: 'The subscription access comes from; absent on Free',
3959
+ },
3960
+ seats: {
3961
+ $ref: '#/components/schemas/Usage',
3962
+ },
3963
+ activeListings: {
3964
+ $ref: '#/components/schemas/Usage',
3965
+ },
3966
+ aiMessages: {
3967
+ $ref: '#/components/schemas/AiMessages',
3968
+ },
3969
+ boards: {
3970
+ $ref: '#/components/schemas/Usage',
3971
+ },
3972
+ features: {
3973
+ type: 'array',
3974
+ items: {
3975
+ type: 'string',
3976
+ enum: ['SOCIAL_POSTS', 'AGENCY_BRANDING'],
3977
+ },
3978
+ uniqueItems: true,
3979
+ },
3980
+ },
3981
+ required: [
3982
+ 'activeListings',
3983
+ 'aiMessages',
3984
+ 'boards',
3985
+ 'canManage',
3986
+ 'features',
3987
+ 'plan',
3988
+ 'seats',
3567
3989
  ],
3568
3990
  };
3991
+ export const TrialSchema = {
3992
+ type: 'object',
3993
+ properties: {
3994
+ endsAt: {
3995
+ type: 'string',
3996
+ format: 'date-time',
3997
+ },
3998
+ },
3999
+ required: ['endsAt'],
4000
+ };
4001
+ export const UsageSchema = {
4002
+ type: 'object',
4003
+ properties: {
4004
+ used: {
4005
+ type: 'integer',
4006
+ format: 'int64',
4007
+ },
4008
+ limit: {
4009
+ type: 'integer',
4010
+ format: 'int64',
4011
+ },
4012
+ },
4013
+ required: ['limit', 'used'],
4014
+ };
3569
4015
  export const PaymentResponseSchema = {
3570
4016
  type: 'object',
3571
4017
  properties: {
@@ -3611,6 +4057,22 @@ export const PaymentResponseSchema = {
3611
4057
  amountMinorUnits: {
3612
4058
  type: 'integer',
3613
4059
  format: 'int64',
4060
+ description: 'VAT included',
4061
+ },
4062
+ netMinorUnits: {
4063
+ type: 'integer',
4064
+ format: 'int64',
4065
+ description: "The amount without VAT, at the subscription's rate",
4066
+ },
4067
+ vatMinorUnits: {
4068
+ type: 'integer',
4069
+ format: 'int64',
4070
+ description: 'The VAT inside the amount',
4071
+ },
4072
+ vatPercent: {
4073
+ type: 'integer',
4074
+ format: 'int32',
4075
+ description: "The subscription's VAT rate, in percent",
3614
4076
  },
3615
4077
  currency: {
3616
4078
  type: 'string',
@@ -3638,6 +4100,7 @@ export const PaymentResponseSchema = {
3638
4100
  'outcome',
3639
4101
  'receivedAt',
3640
4102
  'subscriptionId',
4103
+ 'vatPercent',
3641
4104
  ],
3642
4105
  };
3643
4106
  export const BucketSchema = {
@@ -4004,6 +4467,200 @@ export const RoleResponseSchema = {
4004
4467
  },
4005
4468
  required: ['description', 'id', 'name', 'permissions'],
4006
4469
  };
4470
+ export const FormSchema = {
4471
+ type: 'object',
4472
+ properties: {
4473
+ id: {
4474
+ type: 'string',
4475
+ format: 'uuid',
4476
+ },
4477
+ state: {
4478
+ type: 'string',
4479
+ enum: ['OPEN', 'SENT', 'REPLACED', 'EXPIRED'],
4480
+ },
4481
+ expiresAt: {
4482
+ type: 'string',
4483
+ format: 'date-time',
4484
+ },
4485
+ prefill: {
4486
+ $ref: '#/components/schemas/Prefill',
4487
+ },
4488
+ },
4489
+ };
4490
+ export const LocationSummarySchema = {
4491
+ type: 'object',
4492
+ properties: {
4493
+ id: {
4494
+ type: 'integer',
4495
+ format: 'int64',
4496
+ },
4497
+ parentId: {
4498
+ type: 'integer',
4499
+ format: 'int64',
4500
+ },
4501
+ type: {
4502
+ type: 'string',
4503
+ enum: ['REGION', 'DISTRICT', 'SUBDISTRICT', 'STREET'],
4504
+ },
4505
+ names: {
4506
+ type: 'object',
4507
+ additionalProperties: {
4508
+ type: 'string',
4509
+ },
4510
+ },
4511
+ fullNames: {
4512
+ type: 'object',
4513
+ additionalProperties: {
4514
+ type: 'string',
4515
+ },
4516
+ },
4517
+ viewport: {
4518
+ $ref: '#/components/schemas/Viewport',
4519
+ },
4520
+ },
4521
+ required: ['fullNames', 'id', 'names', 'type', 'viewport'],
4522
+ };
4523
+ export const OwnerSchema = {
4524
+ type: 'object',
4525
+ properties: {
4526
+ id: {
4527
+ type: 'integer',
4528
+ format: 'int64',
4529
+ },
4530
+ name: {
4531
+ type: 'string',
4532
+ },
4533
+ phone: {
4534
+ type: 'string',
4535
+ },
4536
+ },
4537
+ };
4538
+ export const PrefillSchema = {
4539
+ type: 'object',
4540
+ properties: {
4541
+ owner: {
4542
+ $ref: '#/components/schemas/Owner',
4543
+ },
4544
+ propertyType: {
4545
+ type: 'string',
4546
+ enum: [
4547
+ 'HOUSE',
4548
+ 'TOWN_HOUSE',
4549
+ 'COUNTRY_HOUSE',
4550
+ 'VILLA',
4551
+ 'COTTAGE',
4552
+ 'APARTMENT',
4553
+ 'DUPLEX',
4554
+ 'TRIPLEX',
4555
+ 'SEMI_BASEMENT',
4556
+ 'ATTIC',
4557
+ 'AGRICULTURAL_LAND',
4558
+ 'RESIDENTIAL_LAND',
4559
+ 'HOTEL_ROOM',
4560
+ 'MOTEL_ROOM',
4561
+ 'CO_LIVING_SPACE',
4562
+ 'OFFICE',
4563
+ 'COMMERCIAL_SPACE',
4564
+ 'CO_WORKING_SPACE',
4565
+ 'WAREHOUSE',
4566
+ 'GARAGE',
4567
+ ],
4568
+ },
4569
+ place: {
4570
+ $ref: '#/components/schemas/LocationSummary',
4571
+ },
4572
+ spaces: {
4573
+ type: 'object',
4574
+ additionalProperties: {
4575
+ type: 'array',
4576
+ items: {
4577
+ type: 'number',
4578
+ format: 'double',
4579
+ },
4580
+ },
4581
+ },
4582
+ totalArea: {
4583
+ type: 'number',
4584
+ format: 'double',
4585
+ },
4586
+ livingArea: {
4587
+ type: 'number',
4588
+ format: 'double',
4589
+ },
4590
+ balconyArea: {
4591
+ type: 'number',
4592
+ format: 'double',
4593
+ },
4594
+ status: {
4595
+ type: 'string',
4596
+ enum: [
4597
+ 'OLD_BUILDING',
4598
+ 'NEW_BUILDING',
4599
+ 'UNDER_CONSTRUCTION',
4600
+ 'FINISHED',
4601
+ ],
4602
+ },
4603
+ condition: {
4604
+ type: 'string',
4605
+ enum: [
4606
+ 'NEWLY_RENOVATED',
4607
+ 'OLD_RENOVATED',
4608
+ 'CURRENT_RENOVATION',
4609
+ 'REPAIRING',
4610
+ 'WHITE_FRAME',
4611
+ 'BLACK_FRAME',
4612
+ 'GREEN_FRAME',
4613
+ 'WHITE_PLUS',
4614
+ ],
4615
+ },
4616
+ totalFloors: {
4617
+ type: 'integer',
4618
+ format: 'int32',
4619
+ },
4620
+ floorAt: {
4621
+ type: 'integer',
4622
+ format: 'int32',
4623
+ },
4624
+ amenities: {
4625
+ type: 'array',
4626
+ items: {
4627
+ type: 'integer',
4628
+ format: 'int32',
4629
+ },
4630
+ },
4631
+ title: {
4632
+ type: 'string',
4633
+ },
4634
+ description: {
4635
+ type: 'string',
4636
+ },
4637
+ offer: {
4638
+ $ref: '#/components/schemas/Offer',
4639
+ },
4640
+ },
4641
+ };
4642
+ export const ViewportSchema = {
4643
+ type: 'object',
4644
+ properties: {
4645
+ south: {
4646
+ type: 'number',
4647
+ format: 'double',
4648
+ },
4649
+ west: {
4650
+ type: 'number',
4651
+ format: 'double',
4652
+ },
4653
+ north: {
4654
+ type: 'number',
4655
+ format: 'double',
4656
+ },
4657
+ east: {
4658
+ type: 'number',
4659
+ format: 'double',
4660
+ },
4661
+ },
4662
+ required: ['east', 'north', 'south', 'west'],
4663
+ };
4007
4664
  export const AddressResponseSchema = {
4008
4665
  type: 'object',
4009
4666
  properties: {
@@ -4152,11 +4809,16 @@ export const InterestResponseSchema = {
4152
4809
  boundedBox: {
4153
4810
  $ref: '#/components/schemas/BoundingBox',
4154
4811
  },
4812
+ agencyBranding: {
4813
+ type: 'boolean',
4814
+ description: "Whether client pages show the agency's own logo; HomeSpot's when false",
4815
+ },
4155
4816
  recommendations: {
4156
4817
  $ref: '#/components/schemas/PagedModelRecommendationsCardView',
4157
4818
  },
4158
4819
  },
4159
4820
  required: [
4821
+ 'agencyBranding',
4160
4822
  'createdAt',
4161
4823
  'criteria',
4162
4824
  'id',
@@ -4308,61 +4970,176 @@ export const RecommendationsCardViewSchema = {
4308
4970
  type: 'string',
4309
4971
  },
4310
4972
  },
4311
- photoCount: {
4973
+ photoCount: {
4974
+ type: 'integer',
4975
+ format: 'int32',
4976
+ },
4977
+ totalArea: {
4978
+ type: 'number',
4979
+ format: 'double',
4980
+ },
4981
+ livingArea: {
4982
+ type: 'number',
4983
+ format: 'double',
4984
+ },
4985
+ balconyArea: {
4986
+ type: 'number',
4987
+ format: 'double',
4988
+ },
4989
+ crm_state: {
4990
+ type: 'string',
4991
+ enum: ['OPEN', 'CLOSED'],
4992
+ },
4993
+ address: {
4994
+ $ref: '#/components/schemas/AddressResponse',
4995
+ },
4996
+ },
4997
+ required: [
4998
+ 'address',
4999
+ 'crm_state',
5000
+ 'externalListingId',
5001
+ 'externalPropertyId',
5002
+ 'listingId',
5003
+ 'listingType',
5004
+ 'ownerContactId',
5005
+ 'price',
5006
+ 'propertyId',
5007
+ 'totalArea',
5008
+ 'type',
5009
+ ],
5010
+ };
5011
+ export const RecommendationDecisionResponseSchema = {
5012
+ type: 'object',
5013
+ properties: {
5014
+ externalPropertyId: {
5015
+ type: 'string',
5016
+ format: 'uuid',
5017
+ },
5018
+ externalListingId: {
5019
+ type: 'string',
5020
+ format: 'uuid',
5021
+ },
5022
+ decision: {
5023
+ type: 'string',
5024
+ enum: ['MAYBE', 'DISLIKE', 'LIKE'],
5025
+ },
5026
+ },
5027
+ required: ['decision', 'externalListingId', 'externalPropertyId'],
5028
+ };
5029
+ export const AmountSchema = {
5030
+ type: 'object',
5031
+ properties: {
5032
+ netMinorUnits: {
5033
+ type: 'integer',
5034
+ format: 'int64',
5035
+ },
5036
+ vatMinorUnits: {
5037
+ type: 'integer',
5038
+ format: 'int64',
5039
+ },
5040
+ totalMinorUnits: {
5041
+ type: 'integer',
5042
+ format: 'int64',
5043
+ },
5044
+ },
5045
+ required: ['netMinorUnits', 'totalMinorUnits', 'vatMinorUnits'],
5046
+ };
5047
+ export const CatalogResponseSchema = {
5048
+ type: 'object',
5049
+ properties: {
5050
+ currency: {
5051
+ type: 'string',
5052
+ },
5053
+ vatPercent: {
4312
5054
  type: 'integer',
4313
5055
  format: 'int32',
4314
5056
  },
4315
- totalArea: {
4316
- type: 'number',
4317
- format: 'double',
5057
+ plans: {
5058
+ type: 'array',
5059
+ description: 'Free, Plus and Pro',
5060
+ items: {
5061
+ $ref: '#/components/schemas/PlanOffer',
5062
+ },
4318
5063
  },
4319
- livingArea: {
4320
- type: 'number',
4321
- format: 'double',
5064
+ enterpriseFromMonthly: {
5065
+ $ref: '#/components/schemas/Amount',
5066
+ description: "Enterprise's lowest monthly price; every deal is priced individually",
4322
5067
  },
4323
- balconyArea: {
4324
- type: 'number',
4325
- format: 'double',
5068
+ trial: {
5069
+ $ref: '#/components/schemas/TrialOffer',
4326
5070
  },
4327
- crm_state: {
5071
+ },
5072
+ required: [
5073
+ 'currency',
5074
+ 'enterpriseFromMonthly',
5075
+ 'plans',
5076
+ 'trial',
5077
+ 'vatPercent',
5078
+ ],
5079
+ };
5080
+ export const PlanOfferSchema = {
5081
+ type: 'object',
5082
+ properties: {
5083
+ plan: {
4328
5084
  type: 'string',
4329
- enum: ['OPEN', 'CLOSED'],
5085
+ enum: ['FREE', 'PLUS', 'PRO', 'ENTERPRISE'],
4330
5086
  },
4331
- address: {
4332
- $ref: '#/components/schemas/AddressResponse',
5087
+ monthly: {
5088
+ $ref: '#/components/schemas/Amount',
5089
+ },
5090
+ yearly: {
5091
+ $ref: '#/components/schemas/Amount',
5092
+ },
5093
+ seats: {
5094
+ type: 'integer',
5095
+ format: 'int32',
5096
+ },
5097
+ activeListings: {
5098
+ type: 'integer',
5099
+ format: 'int32',
5100
+ },
5101
+ aiMessages: {
5102
+ type: 'integer',
5103
+ format: 'int32',
5104
+ description: "A month's AI messages, shared by the whole agency",
5105
+ },
5106
+ features: {
5107
+ type: 'array',
5108
+ items: {
5109
+ type: 'string',
5110
+ enum: ['SOCIAL_POSTS', 'AGENCY_BRANDING'],
5111
+ },
5112
+ uniqueItems: true,
4333
5113
  },
4334
5114
  },
4335
5115
  required: [
4336
- 'address',
4337
- 'crm_state',
4338
- 'externalListingId',
4339
- 'externalPropertyId',
4340
- 'listingId',
4341
- 'listingType',
4342
- 'ownerContactId',
4343
- 'price',
4344
- 'propertyId',
4345
- 'totalArea',
4346
- 'type',
5116
+ 'activeListings',
5117
+ 'aiMessages',
5118
+ 'features',
5119
+ 'monthly',
5120
+ 'plan',
5121
+ 'seats',
5122
+ 'yearly',
4347
5123
  ],
4348
5124
  };
4349
- export const RecommendationDecisionResponseSchema = {
5125
+ export const TrialOfferSchema = {
4350
5126
  type: 'object',
4351
5127
  properties: {
4352
- externalPropertyId: {
4353
- type: 'string',
4354
- format: 'uuid',
5128
+ days: {
5129
+ type: 'integer',
5130
+ format: 'int32',
4355
5131
  },
4356
- externalListingId: {
5132
+ plan: {
4357
5133
  type: 'string',
4358
- format: 'uuid',
5134
+ enum: ['FREE', 'PLUS', 'PRO', 'ENTERPRISE'],
4359
5135
  },
4360
- decision: {
4361
- type: 'string',
4362
- enum: ['MAYBE', 'DISLIKE', 'LIKE'],
5136
+ aiMessages: {
5137
+ type: 'integer',
5138
+ format: 'int32',
5139
+ description: 'For the whole trial',
4363
5140
  },
4364
5141
  },
4365
- required: ['decision', 'externalListingId', 'externalPropertyId'],
5142
+ required: ['aiMessages', 'days', 'plan'],
4366
5143
  };
4367
5144
  export const GroupedPermissionsResponseSchema = {
4368
5145
  type: 'object',
@@ -5159,6 +5936,40 @@ export const AgentCommentedSchema = {
5159
5936
  },
5160
5937
  required: ['kind'],
5161
5938
  };
5939
+ export const AiMessagesRunningLowSchema = {
5940
+ properties: {
5941
+ used: {
5942
+ type: 'integer',
5943
+ format: 'int64',
5944
+ },
5945
+ allowance: {
5946
+ type: 'integer',
5947
+ format: 'int32',
5948
+ },
5949
+ kind: {
5950
+ type: 'string',
5951
+ enum: ['AI_MESSAGES_RUNNING_LOW'],
5952
+ },
5953
+ },
5954
+ required: ['kind'],
5955
+ };
5956
+ export const AiMessagesUsedUpSchema = {
5957
+ properties: {
5958
+ allowance: {
5959
+ type: 'integer',
5960
+ format: 'int32',
5961
+ },
5962
+ renewsAt: {
5963
+ type: 'string',
5964
+ format: 'date-time',
5965
+ },
5966
+ kind: {
5967
+ type: 'string',
5968
+ enum: ['AI_MESSAGES_USED_UP'],
5969
+ },
5970
+ },
5971
+ required: ['kind'],
5972
+ };
5162
5973
  export const ChannelReauthRequiredSchema = {
5163
5974
  properties: {
5164
5975
  connectionId: {
@@ -5266,6 +6077,22 @@ export const CursorPageNotificationViewSchema = {
5266
6077
  },
5267
6078
  },
5268
6079
  };
6080
+ export const DiscountEndingSchema = {
6081
+ properties: {
6082
+ subscriptionId: {
6083
+ $ref: '#/components/schemas/SubscriptionId',
6084
+ },
6085
+ endsAt: {
6086
+ type: 'string',
6087
+ format: 'date-time',
6088
+ },
6089
+ kind: {
6090
+ type: 'string',
6091
+ enum: ['DISCOUNT_ENDING'],
6092
+ },
6093
+ },
6094
+ required: ['kind'],
6095
+ };
5269
6096
  export const ListingExpiredSchema = {
5270
6097
  properties: {
5271
6098
  contactId: {
@@ -5395,6 +6222,11 @@ export const NotificationContentSchema = {
5395
6222
  SUBSCRIPTION_ENDING: '#/components/schemas/SubscriptionEnding',
5396
6223
  SUBSCRIPTION_EXPIRED: '#/components/schemas/SubscriptionExpired',
5397
6224
  SUBSCRIPTION_PAYMENT_REVERSED: '#/components/schemas/SubscriptionPaymentReversed',
6225
+ TRIAL_ENDING: '#/components/schemas/TrialEnding',
6226
+ TRIAL_ENDED: '#/components/schemas/TrialEnded',
6227
+ DISCOUNT_ENDING: '#/components/schemas/DiscountEnding',
6228
+ AI_MESSAGES_RUNNING_LOW: '#/components/schemas/AiMessagesRunningLow',
6229
+ AI_MESSAGES_USED_UP: '#/components/schemas/AiMessagesUsedUp',
5398
6230
  CHANNEL_REAUTH_REQUIRED: '#/components/schemas/ChannelReauthRequired',
5399
6231
  SOCIAL_POST_FAILED: '#/components/schemas/SocialPostFailed',
5400
6232
  SOCIAL_POST_COMMENTED: '#/components/schemas/SocialPostCommented',
@@ -5441,6 +6273,11 @@ export const NotificationViewSchema = {
5441
6273
  'SUBSCRIPTION_ENDING',
5442
6274
  'SUBSCRIPTION_EXPIRED',
5443
6275
  'SUBSCRIPTION_PAYMENT_REVERSED',
6276
+ 'TRIAL_ENDING',
6277
+ 'TRIAL_ENDED',
6278
+ 'DISCOUNT_ENDING',
6279
+ 'AI_MESSAGES_RUNNING_LOW',
6280
+ 'AI_MESSAGES_USED_UP',
5444
6281
  'CHANNEL_REAUTH_REQUIRED',
5445
6282
  'SOCIAL_POST_FAILED',
5446
6283
  'SOCIAL_POST_COMMENTED',
@@ -5454,12 +6291,21 @@ export const NotificationViewSchema = {
5454
6291
  {
5455
6292
  $ref: '#/components/schemas/AgentCommented',
5456
6293
  },
6294
+ {
6295
+ $ref: '#/components/schemas/AiMessagesRunningLow',
6296
+ },
6297
+ {
6298
+ $ref: '#/components/schemas/AiMessagesUsedUp',
6299
+ },
5457
6300
  {
5458
6301
  $ref: '#/components/schemas/ChannelReauthRequired',
5459
6302
  },
5460
6303
  {
5461
6304
  $ref: '#/components/schemas/ContactAssigned',
5462
6305
  },
6306
+ {
6307
+ $ref: '#/components/schemas/DiscountEnding',
6308
+ },
5463
6309
  {
5464
6310
  $ref: '#/components/schemas/ListingExpired',
5465
6311
  },
@@ -5493,6 +6339,12 @@ export const NotificationViewSchema = {
5493
6339
  {
5494
6340
  $ref: '#/components/schemas/TaskCommented',
5495
6341
  },
6342
+ {
6343
+ $ref: '#/components/schemas/TrialEnded',
6344
+ },
6345
+ {
6346
+ $ref: '#/components/schemas/TrialEnding',
6347
+ },
5496
6348
  ],
5497
6349
  },
5498
6350
  count: {
@@ -5732,6 +6584,28 @@ export const TaskIdSchema = {
5732
6584
  },
5733
6585
  },
5734
6586
  };
6587
+ export const TrialEndedSchema = {
6588
+ properties: {
6589
+ kind: {
6590
+ type: 'string',
6591
+ enum: ['TRIAL_ENDED'],
6592
+ },
6593
+ },
6594
+ required: ['kind'],
6595
+ };
6596
+ export const TrialEndingSchema = {
6597
+ properties: {
6598
+ endsAt: {
6599
+ type: 'string',
6600
+ format: 'date-time',
6601
+ },
6602
+ kind: {
6603
+ type: 'string',
6604
+ enum: ['TRIAL_ENDING'],
6605
+ },
6606
+ },
6607
+ required: ['kind'],
6608
+ };
5735
6609
  export const UnreadCountSchema = {
5736
6610
  type: 'object',
5737
6611
  properties: {
@@ -6140,6 +7014,16 @@ export const ListingGridResponseSchema = {
6140
7014
  type: 'string',
6141
7015
  enum: ['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE'],
6142
7016
  },
7017
+ listingState: {
7018
+ type: 'string',
7019
+ description: 'Whether the agency still works the listing; null for a property without one',
7020
+ enum: ['OPEN', 'CLOSED'],
7021
+ },
7022
+ marketplaceStatus: {
7023
+ type: 'string',
7024
+ description: "The listing on HomeSpot's own marketplace; null for a property without one",
7025
+ enum: ['ACTIVE', 'PAUSED', 'EXPIRED'],
7026
+ },
6143
7027
  price: {
6144
7028
  type: 'number',
6145
7029
  },
@@ -6213,6 +7097,18 @@ export const PlatformViewSchema = {
6213
7097
  type: 'string',
6214
7098
  enum: ['SS', 'MY_HOME'],
6215
7099
  },
7100
+ status: {
7101
+ type: 'string',
7102
+ description: 'PENDING until the portal answers; SYNDICATED while live',
7103
+ enum: [
7104
+ 'PENDING',
7105
+ 'SYNDICATED',
7106
+ 'FAILED',
7107
+ 'EXPIRED',
7108
+ 'WITHDRAWING',
7109
+ 'WITHDRAWN',
7110
+ ],
7111
+ },
6216
7112
  expiresAt: {
6217
7113
  type: 'string',
6218
7114
  format: 'date',
@@ -6226,6 +7122,7 @@ export const PlatformViewSchema = {
6226
7122
  format: 'date',
6227
7123
  },
6228
7124
  },
7125
+ required: ['status'],
6229
7126
  };
6230
7127
  export const SocialPostLinkSchema = {
6231
7128
  type: 'object',
@@ -6385,6 +7282,9 @@ export const InterestGridResponseSchema = {
6385
7282
  bedrooms: {
6386
7283
  $ref: '#/components/schemas/RoomRange',
6387
7284
  },
7285
+ bathrooms: {
7286
+ $ref: '#/components/schemas/RoomRange',
7287
+ },
6388
7288
  totalArea: {
6389
7289
  $ref: '#/components/schemas/AreaRange',
6390
7290
  },
@@ -6394,10 +7294,26 @@ export const InterestGridResponseSchema = {
6394
7294
  address: {
6395
7295
  $ref: '#/components/schemas/AddressView',
6396
7296
  },
7297
+ locationType: {
7298
+ type: 'string',
7299
+ enum: ['REGION', 'DISTRICT', 'SUBDISTRICT', 'STREET'],
7300
+ },
7301
+ locationId: {
7302
+ type: 'integer',
7303
+ format: 'int64',
7304
+ },
6397
7305
  status: {
6398
7306
  type: 'string',
6399
7307
  enum: ['UNPUBLISHED', 'PUBLISHED', 'CLOSED'],
6400
7308
  },
7309
+ shareToken: {
7310
+ type: 'string',
7311
+ format: 'uuid',
7312
+ },
7313
+ recommendationCount: {
7314
+ type: 'integer',
7315
+ format: 'int32',
7316
+ },
6401
7317
  },
6402
7318
  required: [
6403
7319
  'createdBy',
@@ -6405,6 +7321,8 @@ export const InterestGridResponseSchema = {
6405
7321
  'listingType',
6406
7322
  'personalDetails',
6407
7323
  'propertyTypes',
7324
+ 'recommendationCount',
7325
+ 'shareToken',
6408
7326
  'status',
6409
7327
  'title',
6410
7328
  ],
@@ -6849,6 +7767,93 @@ export const SocialCommentThreadResponseSchema = {
6849
7767
  },
6850
7768
  required: ['answered', 'comment', 'post', 'replies'],
6851
7769
  };
7770
+ export const ListingMatchSchema = {
7771
+ type: 'object',
7772
+ properties: {
7773
+ externalPropertyId: {
7774
+ type: 'string',
7775
+ format: 'uuid',
7776
+ },
7777
+ externalListingId: {
7778
+ type: 'string',
7779
+ format: 'uuid',
7780
+ },
7781
+ listingType: {
7782
+ type: 'string',
7783
+ enum: ['SALE', 'RENT', 'DAILY_RENT', 'PLEDGE'],
7784
+ },
7785
+ price: {
7786
+ type: 'number',
7787
+ },
7788
+ propertyType: {
7789
+ type: 'string',
7790
+ enum: [
7791
+ 'HOUSE',
7792
+ 'TOWN_HOUSE',
7793
+ 'COUNTRY_HOUSE',
7794
+ 'VILLA',
7795
+ 'COTTAGE',
7796
+ 'APARTMENT',
7797
+ 'DUPLEX',
7798
+ 'TRIPLEX',
7799
+ 'SEMI_BASEMENT',
7800
+ 'ATTIC',
7801
+ 'AGRICULTURAL_LAND',
7802
+ 'RESIDENTIAL_LAND',
7803
+ 'HOTEL_ROOM',
7804
+ 'MOTEL_ROOM',
7805
+ 'CO_LIVING_SPACE',
7806
+ 'OFFICE',
7807
+ 'COMMERCIAL_SPACE',
7808
+ 'CO_WORKING_SPACE',
7809
+ 'WAREHOUSE',
7810
+ 'GARAGE',
7811
+ ],
7812
+ },
7813
+ address: {
7814
+ type: 'string',
7815
+ },
7816
+ lat: {
7817
+ type: 'number',
7818
+ format: 'double',
7819
+ },
7820
+ lng: {
7821
+ type: 'number',
7822
+ format: 'double',
7823
+ },
7824
+ totalArea: {
7825
+ type: 'number',
7826
+ format: 'double',
7827
+ },
7828
+ bedrooms: {
7829
+ type: 'integer',
7830
+ format: 'int32',
7831
+ },
7832
+ bathrooms: {
7833
+ type: 'integer',
7834
+ format: 'int32',
7835
+ },
7836
+ featuredPhotos: {
7837
+ type: 'array',
7838
+ items: {
7839
+ type: 'string',
7840
+ },
7841
+ },
7842
+ },
7843
+ required: [
7844
+ 'bathrooms',
7845
+ 'bedrooms',
7846
+ 'externalListingId',
7847
+ 'externalPropertyId',
7848
+ 'featuredPhotos',
7849
+ 'lat',
7850
+ 'listingType',
7851
+ 'lng',
7852
+ 'price',
7853
+ 'propertyType',
7854
+ 'totalArea',
7855
+ ],
7856
+ };
6852
7857
  export const ContactGridResponseSchema = {
6853
7858
  type: 'object',
6854
7859
  properties: {