@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.
- package/dist/property/client.gen.d.ts.map +1 -1
- package/dist/property/client.gen.js +1 -3
- package/dist/property/client.gen.js.map +1 -1
- package/dist/property/types.gen.d.ts +1 -1
- package/dist/property/types.gen.d.ts.map +1 -1
- package/dist/rem/client.gen.d.ts.map +1 -1
- package/dist/rem/client.gen.js +1 -3
- package/dist/rem/client.gen.js.map +1 -1
- package/dist/rem/index.d.ts +2 -2
- package/dist/rem/index.d.ts.map +1 -1
- package/dist/rem/index.js +1 -1
- package/dist/rem/index.js.map +1 -1
- package/dist/rem/schemas.gen.d.ts +916 -67
- package/dist/rem/schemas.gen.d.ts.map +1 -1
- package/dist/rem/schemas.gen.js +1095 -90
- package/dist/rem/schemas.gen.js.map +1 -1
- package/dist/rem/sdk.gen.d.ts +20 -13
- package/dist/rem/sdk.gen.d.ts.map +1 -1
- package/dist/rem/sdk.gen.js +55 -11
- package/dist/rem/sdk.gen.js.map +1 -1
- package/dist/rem/transformers.gen.d.ts +3 -2
- package/dist/rem/transformers.gen.d.ts.map +1 -1
- package/dist/rem/transformers.gen.js +37 -4
- package/dist/rem/transformers.gen.js.map +1 -1
- package/dist/rem/types.gen.d.ts +561 -52
- package/dist/rem/types.gen.d.ts.map +1 -1
- package/dist/rem/zod.gen.d.ts +1513 -214
- package/dist/rem/zod.gen.d.ts.map +1 -1
- package/dist/rem/zod.gen.js +933 -70
- package/dist/rem/zod.gen.js.map +1 -1
- package/dist/utils/client.gen.d.ts.map +1 -1
- package/dist/utils/client.gen.js +1 -3
- package/dist/utils/client.gen.js.map +1 -1
- package/dist/utils/types.gen.d.ts +1 -1
- package/dist/utils/types.gen.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/rem/schemas.gen.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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: ['
|
|
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: ['
|
|
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
|
|
2423
|
+
export const AdminCheckoutRequestSchema = {
|
|
2110
2424
|
type: 'object',
|
|
2111
2425
|
properties: {
|
|
2112
|
-
|
|
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
|
-
|
|
2430
|
+
plan: {
|
|
2120
2431
|
type: 'string',
|
|
2121
|
-
|
|
2432
|
+
enum: ['FREE', 'PLUS', 'PRO', 'ENTERPRISE'],
|
|
2122
2433
|
},
|
|
2123
|
-
|
|
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
|
|
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
|
-
|
|
2447
|
+
activeListings: {
|
|
2448
|
+
type: 'integer',
|
|
2449
|
+
format: 'int32',
|
|
2450
|
+
},
|
|
2451
|
+
aiMessages: {
|
|
2150
2452
|
type: 'integer',
|
|
2151
2453
|
format: 'int32',
|
|
2152
|
-
description: '
|
|
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
|
-
'
|
|
2477
|
+
'activeListings',
|
|
2478
|
+
'agencyId',
|
|
2479
|
+
'aiMessages',
|
|
2162
2480
|
'billingCycle',
|
|
2163
|
-
'
|
|
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
|
|
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: ['
|
|
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
|
|
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
|
-
|
|
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
|
-
'
|
|
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
|
-
|
|
4316
|
-
type: '
|
|
4317
|
-
|
|
5057
|
+
plans: {
|
|
5058
|
+
type: 'array',
|
|
5059
|
+
description: 'Free, Plus and Pro',
|
|
5060
|
+
items: {
|
|
5061
|
+
$ref: '#/components/schemas/PlanOffer',
|
|
5062
|
+
},
|
|
4318
5063
|
},
|
|
4319
|
-
|
|
4320
|
-
|
|
4321
|
-
|
|
5064
|
+
enterpriseFromMonthly: {
|
|
5065
|
+
$ref: '#/components/schemas/Amount',
|
|
5066
|
+
description: "Enterprise's lowest monthly price; every deal is priced individually",
|
|
4322
5067
|
},
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
format: 'double',
|
|
5068
|
+
trial: {
|
|
5069
|
+
$ref: '#/components/schemas/TrialOffer',
|
|
4326
5070
|
},
|
|
4327
|
-
|
|
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: ['
|
|
5085
|
+
enum: ['FREE', 'PLUS', 'PRO', 'ENTERPRISE'],
|
|
4330
5086
|
},
|
|
4331
|
-
|
|
4332
|
-
$ref: '#/components/schemas/
|
|
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
|
-
'
|
|
4337
|
-
'
|
|
4338
|
-
'
|
|
4339
|
-
'
|
|
4340
|
-
'
|
|
4341
|
-
'
|
|
4342
|
-
'
|
|
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
|
|
5125
|
+
export const TrialOfferSchema = {
|
|
4350
5126
|
type: 'object',
|
|
4351
5127
|
properties: {
|
|
4352
|
-
|
|
4353
|
-
type: '
|
|
4354
|
-
format: '
|
|
5128
|
+
days: {
|
|
5129
|
+
type: 'integer',
|
|
5130
|
+
format: 'int32',
|
|
4355
5131
|
},
|
|
4356
|
-
|
|
5132
|
+
plan: {
|
|
4357
5133
|
type: 'string',
|
|
4358
|
-
|
|
5134
|
+
enum: ['FREE', 'PLUS', 'PRO', 'ENTERPRISE'],
|
|
4359
5135
|
},
|
|
4360
|
-
|
|
4361
|
-
type: '
|
|
4362
|
-
|
|
5136
|
+
aiMessages: {
|
|
5137
|
+
type: 'integer',
|
|
5138
|
+
format: 'int32',
|
|
5139
|
+
description: 'For the whole trial',
|
|
4363
5140
|
},
|
|
4364
5141
|
},
|
|
4365
|
-
required: ['
|
|
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: {
|