@homespot-sdk/core 0.0.357 → 0.0.359
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/index.d.ts +2 -2
- package/dist/property/index.d.ts.map +1 -1
- package/dist/property/index.js +1 -1
- package/dist/property/index.js.map +1 -1
- package/dist/property/schemas.gen.d.ts +92 -0
- package/dist/property/schemas.gen.d.ts.map +1 -1
- package/dist/property/schemas.gen.js +99 -0
- package/dist/property/schemas.gen.js.map +1 -1
- package/dist/property/sdk.gen.d.ts +6 -2
- package/dist/property/sdk.gen.d.ts.map +1 -1
- package/dist/property/sdk.gen.js +34 -2
- package/dist/property/sdk.gen.js.map +1 -1
- package/dist/property/transformers.gen.d.ts +5 -1
- package/dist/property/transformers.gen.d.ts.map +1 -1
- package/dist/property/transformers.gen.js +40 -0
- package/dist/property/transformers.gen.js.map +1 -1
- package/dist/property/types.gen.d.ts +86 -0
- package/dist/property/types.gen.d.ts.map +1 -1
- package/dist/property/zod.gen.d.ts +271 -6
- package/dist/property/zod.gen.d.ts.map +1 -1
- package/dist/property/zod.gen.js +98 -0
- package/dist/property/zod.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 +655 -219
- package/dist/rem/schemas.gen.d.ts.map +1 -1
- package/dist/rem/schemas.gen.js +718 -221
- package/dist/rem/schemas.gen.js.map +1 -1
- package/dist/rem/sdk.gen.d.ts +14 -12
- package/dist/rem/sdk.gen.d.ts.map +1 -1
- package/dist/rem/sdk.gen.js +40 -5
- package/dist/rem/sdk.gen.js.map +1 -1
- package/dist/rem/transformers.gen.d.ts +6 -1
- package/dist/rem/transformers.gen.d.ts.map +1 -1
- package/dist/rem/transformers.gen.js +76 -0
- package/dist/rem/transformers.gen.js.map +1 -1
- package/dist/rem/types.gen.d.ts +361 -126
- package/dist/rem/types.gen.d.ts.map +1 -1
- package/dist/rem/zod.gen.d.ts +1110 -204
- package/dist/rem/zod.gen.d.ts.map +1 -1
- package/dist/rem/zod.gen.js +521 -114
- package/dist/rem/zod.gen.js.map +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/schemas.gen.d.ts +72 -0
- package/dist/utils/schemas.gen.d.ts.map +1 -1
- package/dist/utils/schemas.gen.js +72 -0
- package/dist/utils/schemas.gen.js.map +1 -1
- package/dist/utils/sdk.gen.d.ts +10 -1
- package/dist/utils/sdk.gen.d.ts.map +1 -1
- package/dist/utils/sdk.gen.js +9 -0
- package/dist/utils/sdk.gen.js.map +1 -1
- package/dist/utils/types.gen.d.ts +73 -0
- package/dist/utils/types.gen.d.ts.map +1 -1
- package/dist/utils/zod.gen.d.ts +157 -0
- package/dist/utils/zod.gen.d.ts.map +1 -1
- package/dist/utils/zod.gen.js +122 -0
- package/dist/utils/zod.gen.js.map +1 -1
- package/package.json +1 -1
package/dist/rem/types.gen.d.ts
CHANGED
|
@@ -276,78 +276,12 @@ export type SubscriptionCheckoutResponse = {
|
|
|
276
276
|
subscriptionId?: string;
|
|
277
277
|
status?: 'PENDING' | 'TRIALING' | 'ACTIVE' | 'PAST_DUE' | 'CANCELLED' | 'EXPIRED' | 'SUPERSEDED';
|
|
278
278
|
};
|
|
279
|
-
export type ProblemDetail = {
|
|
280
|
-
type?: string;
|
|
281
|
-
title?: string;
|
|
282
|
-
status?: number;
|
|
283
|
-
detail?: string;
|
|
284
|
-
instance?: string;
|
|
285
|
-
properties?: {
|
|
286
|
-
[key: string]: unknown;
|
|
287
|
-
};
|
|
288
|
-
};
|
|
289
|
-
export type AgencyRegistrationConflictResponse = {
|
|
290
|
-
type: string;
|
|
291
|
-
title: string;
|
|
292
|
-
status: number;
|
|
293
|
-
detail: string;
|
|
294
|
-
instance: string;
|
|
295
|
-
/**
|
|
296
|
-
* All detected conflicts: NAME is taken, SUBDOMAIN is taken, or OWNER already owns an agency. A retry of the owner's NEW agency is allowed.
|
|
297
|
-
*/
|
|
298
|
-
conflicts: Array<'OWNER' | 'NAME' | 'SUBDOMAIN'>;
|
|
299
|
-
code: 'AGENCY_REGISTRATION_CONFLICT';
|
|
300
|
-
};
|
|
301
|
-
export type ConcurrentModificationResponse = {
|
|
302
|
-
type: string;
|
|
303
|
-
title: string;
|
|
304
|
-
status: number;
|
|
305
|
-
detail: string;
|
|
306
|
-
instance: string;
|
|
307
|
-
code: 'CONCURRENT_MODIFICATION';
|
|
308
|
-
};
|
|
309
|
-
export type DataIntegrityConflictResponse = {
|
|
310
|
-
type: string;
|
|
311
|
-
title: string;
|
|
312
|
-
status: number;
|
|
313
|
-
detail: string;
|
|
314
|
-
instance: string;
|
|
315
|
-
code: 'DATA_INTEGRITY_CONFLICT';
|
|
316
|
-
};
|
|
317
|
-
export type SubscriptionConflictResponse = ({
|
|
318
|
-
code: 'AGENCY_REGISTRATION_CONFLICT';
|
|
319
|
-
} & AgencyRegistrationConflictResponse) | ({
|
|
320
|
-
code: 'SUBSCRIPTION_STATE_CONFLICT';
|
|
321
|
-
} & SubscriptionStateConflictResponse) | ({
|
|
322
|
-
code: 'CONCURRENT_MODIFICATION';
|
|
323
|
-
} & ConcurrentModificationResponse) | ({
|
|
324
|
-
code: 'DATA_INTEGRITY_CONFLICT';
|
|
325
|
-
} & DataIntegrityConflictResponse);
|
|
326
|
-
export type SubscriptionStateConflictResponse = {
|
|
327
|
-
type: string;
|
|
328
|
-
title: string;
|
|
329
|
-
status: number;
|
|
330
|
-
detail: string;
|
|
331
|
-
instance: string;
|
|
332
|
-
subscriptionId: string;
|
|
333
|
-
/**
|
|
334
|
-
* Subscription lifecycle status. The standard problem status field remains the HTTP status code.
|
|
335
|
-
*/
|
|
336
|
-
subscriptionStatus: 'PENDING' | 'TRIALING' | 'ACTIVE' | 'PAST_DUE' | 'CANCELLED' | 'EXPIRED' | 'SUPERSEDED';
|
|
337
|
-
code: 'SUBSCRIPTION_STATE_CONFLICT';
|
|
338
|
-
};
|
|
339
279
|
export type ChangePlanRequest = {
|
|
340
280
|
plan: 'STARTER' | 'PRO' | 'ENTERPRISE';
|
|
341
281
|
billingCycle: 'MONTHLY' | 'ANNUAL';
|
|
342
282
|
};
|
|
343
283
|
export type CheckoutRequest = {
|
|
344
|
-
/**
|
|
345
|
-
* Required only when starting a new subscription
|
|
346
|
-
*/
|
|
347
284
|
plan?: 'STARTER' | 'PRO' | 'ENTERPRISE';
|
|
348
|
-
/**
|
|
349
|
-
* Required only when starting a new subscription
|
|
350
|
-
*/
|
|
351
285
|
billingCycle?: 'MONTHLY' | 'ANNUAL';
|
|
352
286
|
};
|
|
353
287
|
export type IdResponseInteger = {
|
|
@@ -380,6 +314,17 @@ export type OauthConnectionResponse = {
|
|
|
380
314
|
createdAt: Date;
|
|
381
315
|
updatedAt: Date;
|
|
382
316
|
revokedAt?: Date;
|
|
317
|
+
canPublish: boolean;
|
|
318
|
+
canReadComments: boolean;
|
|
319
|
+
canReply: boolean;
|
|
320
|
+
/**
|
|
321
|
+
* Like and comment counts on a post
|
|
322
|
+
*/
|
|
323
|
+
canReadStats: boolean;
|
|
324
|
+
/**
|
|
325
|
+
* The token is dead, or the grant lacks a scope the connect flow asks for — re-running the connect flow is what fixes it
|
|
326
|
+
*/
|
|
327
|
+
reconnectRequired: boolean;
|
|
383
328
|
};
|
|
384
329
|
export type AttendeeRequest = {
|
|
385
330
|
role: 'ORGANIZER' | 'MEMBER' | 'OWNER' | 'CLIENT' | 'OTHER';
|
|
@@ -433,6 +378,16 @@ export type AgencyPrincipalDto = {
|
|
|
433
378
|
export type SendMessageRequest = {
|
|
434
379
|
text: string;
|
|
435
380
|
};
|
|
381
|
+
export type ProblemDetail = {
|
|
382
|
+
type?: string;
|
|
383
|
+
title?: string;
|
|
384
|
+
status?: number;
|
|
385
|
+
detail?: string;
|
|
386
|
+
instance?: string;
|
|
387
|
+
properties?: {
|
|
388
|
+
[key: string]: unknown;
|
|
389
|
+
};
|
|
390
|
+
};
|
|
436
391
|
export type StartPropertyRegistrationRequest = {
|
|
437
392
|
propertyType: 'HOUSE' | 'TOWN_HOUSE' | 'COUNTRY_HOUSE' | 'VILLA' | 'COTTAGE' | 'APARTMENT' | 'DUPLEX' | 'TRIPLEX' | 'SEMI_BASEMENT' | 'ATTIC' | 'AGRICULTURAL_LAND' | 'RESIDENTIAL_LAND' | 'HOTEL_ROOM' | 'MOTEL_ROOM' | 'CO_LIVING_SPACE' | 'OFFICE' | 'COMMERCIAL_SPACE' | 'CO_WORKING_SPACE' | 'WAREHOUSE' | 'GARAGE';
|
|
438
393
|
};
|
|
@@ -471,6 +426,58 @@ export type Percentage = Omit<AddDealRequest, 'type'> & {
|
|
|
471
426
|
commission?: number;
|
|
472
427
|
type: 'PERCENTAGE';
|
|
473
428
|
};
|
|
429
|
+
export type FocusRequest = {
|
|
430
|
+
x: number;
|
|
431
|
+
y: number;
|
|
432
|
+
};
|
|
433
|
+
export type Photo = {
|
|
434
|
+
photoId: number;
|
|
435
|
+
mode?: 'AUTO' | 'CROP' | 'FIT';
|
|
436
|
+
focus?: FocusRequest;
|
|
437
|
+
};
|
|
438
|
+
export type PublishSocialPostRequest = {
|
|
439
|
+
channel: 'FACEBOOK' | 'INSTAGRAM';
|
|
440
|
+
caption: string;
|
|
441
|
+
/**
|
|
442
|
+
* Instagram only; defaults to LANDSCAPE
|
|
443
|
+
*/
|
|
444
|
+
ratio?: 'LANDSCAPE' | 'SQUARE' | 'PORTRAIT';
|
|
445
|
+
/**
|
|
446
|
+
* In post order
|
|
447
|
+
*/
|
|
448
|
+
photos: Array<Photo>;
|
|
449
|
+
templateId?: string;
|
|
450
|
+
};
|
|
451
|
+
export type FocusView = {
|
|
452
|
+
x: number;
|
|
453
|
+
y: number;
|
|
454
|
+
};
|
|
455
|
+
export type PhotoView = {
|
|
456
|
+
photoId: number;
|
|
457
|
+
mode: 'AUTO' | 'CROP' | 'FIT';
|
|
458
|
+
focus: FocusView;
|
|
459
|
+
};
|
|
460
|
+
export type SocialPostView = {
|
|
461
|
+
id: string;
|
|
462
|
+
channel: 'FACEBOOK' | 'INSTAGRAM';
|
|
463
|
+
status: 'PUBLISHING' | 'PUBLISHED' | 'FAILED' | 'REMOVED';
|
|
464
|
+
caption: string;
|
|
465
|
+
/**
|
|
466
|
+
* Instagram only
|
|
467
|
+
*/
|
|
468
|
+
ratio?: 'LANDSCAPE' | 'SQUARE' | 'PORTRAIT';
|
|
469
|
+
photos: Array<PhotoView>;
|
|
470
|
+
templateId?: string;
|
|
471
|
+
failureReason?: 'RECONNECT_REQUIRED' | 'PERMISSION_MISSING' | 'PAGE_PUBLISHING_AUTHORIZATION' | 'RATE_LIMITED' | 'BAD_MEDIA' | 'UNCONFIRMED' | 'UNKNOWN';
|
|
472
|
+
failureDetail?: string;
|
|
473
|
+
/**
|
|
474
|
+
* The post on Facebook / Instagram, once published
|
|
475
|
+
*/
|
|
476
|
+
permalink?: string;
|
|
477
|
+
publishedAt?: Date;
|
|
478
|
+
createdBy: string;
|
|
479
|
+
createdAt: Date;
|
|
480
|
+
};
|
|
474
481
|
export type CloseListingRequest = {
|
|
475
482
|
withdrawExternal?: boolean;
|
|
476
483
|
};
|
|
@@ -491,6 +498,10 @@ export type OnboardClientRequest = {
|
|
|
491
498
|
export type IdResponseLong = {
|
|
492
499
|
id: number;
|
|
493
500
|
};
|
|
501
|
+
export type ExternalListingWithdrawRequest = {
|
|
502
|
+
platform: 'SS' | 'MY_HOME';
|
|
503
|
+
listingId: number;
|
|
504
|
+
};
|
|
494
505
|
export type ExternalListingPublishRequest = {
|
|
495
506
|
platform: 'SS' | 'MY_HOME';
|
|
496
507
|
listingId: number;
|
|
@@ -806,6 +817,60 @@ export type StageCardsResponse = {
|
|
|
806
817
|
members: Array<MemberPeekResponse>;
|
|
807
818
|
data: CursorPageTaskCardResponse;
|
|
808
819
|
};
|
|
820
|
+
export type SubscriptionResponse = {
|
|
821
|
+
subscriptionId: string;
|
|
822
|
+
plan: 'STARTER' | 'PRO' | 'ENTERPRISE';
|
|
823
|
+
billingCycle: 'MONTHLY' | 'ANNUAL';
|
|
824
|
+
/**
|
|
825
|
+
* Per-cycle price in minor units (tetri)
|
|
826
|
+
*/
|
|
827
|
+
priceMinorUnits: number;
|
|
828
|
+
currency: string;
|
|
829
|
+
seats: number;
|
|
830
|
+
monthlyContactLimit: number;
|
|
831
|
+
trialDays: number;
|
|
832
|
+
status: 'PENDING' | 'TRIALING' | 'ACTIVE' | 'PAST_DUE' | 'CANCELLED' | 'EXPIRED' | 'SUPERSEDED';
|
|
833
|
+
/**
|
|
834
|
+
* Whether the agency is currently entitled to the workspace
|
|
835
|
+
*/
|
|
836
|
+
live: boolean;
|
|
837
|
+
trialEndsAt?: Date;
|
|
838
|
+
paidThroughAt?: Date;
|
|
839
|
+
/**
|
|
840
|
+
* When the current entitlement ends, before grace; null while pending or once expired
|
|
841
|
+
*/
|
|
842
|
+
accessEndsAt?: Date;
|
|
843
|
+
pastDueSince?: Date;
|
|
844
|
+
lastChargedAt?: Date;
|
|
845
|
+
createdAt: Date;
|
|
846
|
+
activatedAt?: Date;
|
|
847
|
+
cancelledAt?: Date;
|
|
848
|
+
/**
|
|
849
|
+
* When the most recently issued checkout link stops being payable
|
|
850
|
+
*/
|
|
851
|
+
checkoutExpiresAt?: Date;
|
|
852
|
+
};
|
|
853
|
+
export type PaymentResponse = {
|
|
854
|
+
id: string;
|
|
855
|
+
subscriptionId: string;
|
|
856
|
+
flittPaymentId: string;
|
|
857
|
+
flittOrderId: string;
|
|
858
|
+
/**
|
|
859
|
+
* Flitt's verdict: approved / declined / reversed / expired …
|
|
860
|
+
*/
|
|
861
|
+
orderStatus: string;
|
|
862
|
+
tranType?: string;
|
|
863
|
+
/**
|
|
864
|
+
* What the platform did with it
|
|
865
|
+
*/
|
|
866
|
+
outcome: 'APPLIED' | 'TRIAL_STARTED' | 'DUPLICATE' | 'NOT_APPLIED_CANCELLED' | 'NOT_APPLIED_SUPERSEDED' | 'REJECTED_AMOUNT' | 'REJECTED_CURRENCY' | 'IGNORED_TRANSACTION_TYPE' | 'DECLINED' | 'REVERSED' | 'REVERSAL_IGNORED' | 'RECORDED';
|
|
867
|
+
amountMinorUnits?: number;
|
|
868
|
+
currency?: string;
|
|
869
|
+
responseCode?: string;
|
|
870
|
+
responseDescription?: string;
|
|
871
|
+
orderTime?: Date;
|
|
872
|
+
receivedAt: Date;
|
|
873
|
+
};
|
|
809
874
|
export type Bucket = {
|
|
810
875
|
count: number;
|
|
811
876
|
value: number;
|
|
@@ -1084,10 +1149,11 @@ export type DealResponse = {
|
|
|
1084
1149
|
export type PlatformListingResponse = {
|
|
1085
1150
|
platformId?: number;
|
|
1086
1151
|
platformType: 'SS' | 'MY_HOME';
|
|
1087
|
-
status: 'PENDING' | 'SYNDICATED' | 'FAILED' | 'EXPIRED';
|
|
1152
|
+
status: 'PENDING' | 'SYNDICATED' | 'FAILED' | 'EXPIRED' | 'WITHDRAWING' | 'WITHDRAWN';
|
|
1088
1153
|
listedAt?: Date;
|
|
1089
1154
|
expiresAt?: Date;
|
|
1090
1155
|
renewedAt?: Date;
|
|
1156
|
+
failureReason?: string;
|
|
1091
1157
|
boost?: BoostResponse;
|
|
1092
1158
|
coloredListing?: ColoredListingResponse;
|
|
1093
1159
|
};
|
|
@@ -1111,12 +1177,16 @@ export type PropertyListingResponse = {
|
|
|
1111
1177
|
marketplaceStatus: 'ACTIVE' | 'PAUSED' | 'EXPIRED';
|
|
1112
1178
|
crmState: 'OPEN' | 'CLOSED';
|
|
1113
1179
|
/**
|
|
1114
|
-
* True while an external-portal placement
|
|
1180
|
+
* True while an external-portal placement, a boost or a social post is in flight — poll the property page until false. Creating the Homespot listing itself is synchronous, so it never sets this.
|
|
1115
1181
|
*/
|
|
1116
1182
|
isProcessing: boolean;
|
|
1117
1183
|
price: number;
|
|
1118
1184
|
deal?: Fixed | MonthsOfRent | Percentage;
|
|
1119
1185
|
platformListings: Array<PlatformListingResponse>;
|
|
1186
|
+
/**
|
|
1187
|
+
* Facebook / Instagram posts of this listing, newest first
|
|
1188
|
+
*/
|
|
1189
|
+
socialPosts: Array<SocialPostResponse>;
|
|
1120
1190
|
createdAt: Date;
|
|
1121
1191
|
closedAt?: Date;
|
|
1122
1192
|
};
|
|
@@ -1136,6 +1206,45 @@ export type PropertyPageResponse = {
|
|
|
1136
1206
|
updatedAt: Date;
|
|
1137
1207
|
closeReason?: PropertyCloseReasonResponse;
|
|
1138
1208
|
};
|
|
1209
|
+
export type SocialPostResponse = {
|
|
1210
|
+
/**
|
|
1211
|
+
* For retrying a failed post, or reading it in full
|
|
1212
|
+
*/
|
|
1213
|
+
postId: string;
|
|
1214
|
+
channel: 'FACEBOOK' | 'INSTAGRAM';
|
|
1215
|
+
status: 'PUBLISHING' | 'PUBLISHED' | 'FAILED' | 'REMOVED';
|
|
1216
|
+
/**
|
|
1217
|
+
* Exactly as published
|
|
1218
|
+
*/
|
|
1219
|
+
caption: string;
|
|
1220
|
+
/**
|
|
1221
|
+
* The post's first photo, as uploaded to the gallery (not the Instagram crop)
|
|
1222
|
+
*/
|
|
1223
|
+
thumbnailUrl?: string;
|
|
1224
|
+
/**
|
|
1225
|
+
* The post on Facebook / Instagram, once published
|
|
1226
|
+
*/
|
|
1227
|
+
permalink?: string;
|
|
1228
|
+
publishedAt?: Date;
|
|
1229
|
+
/**
|
|
1230
|
+
* The member who created the post, also after they left the agency
|
|
1231
|
+
*/
|
|
1232
|
+
createdBy: MemberPeekResponse;
|
|
1233
|
+
failureReason?: 'RECONNECT_REQUIRED' | 'PERMISSION_MISSING' | 'PAGE_PUBLISHING_AUTHORIZATION' | 'RATE_LIMITED' | 'BAD_MEDIA' | 'UNCONFIRMED' | 'UNKNOWN';
|
|
1234
|
+
/**
|
|
1235
|
+
* The post's public counts as last read from Facebook / Instagram; null until the first read
|
|
1236
|
+
*/
|
|
1237
|
+
stats?: SocialPostStats;
|
|
1238
|
+
};
|
|
1239
|
+
export type SocialPostStats = {
|
|
1240
|
+
likes: number;
|
|
1241
|
+
comments: number;
|
|
1242
|
+
shares: number;
|
|
1243
|
+
/**
|
|
1244
|
+
* When the counts were read — show how old they are
|
|
1245
|
+
*/
|
|
1246
|
+
fetchedAt: Date;
|
|
1247
|
+
};
|
|
1139
1248
|
export type ListingOwnerContactResponse = {
|
|
1140
1249
|
contactId: number;
|
|
1141
1250
|
personalDetails: ContactPersonalDetailsRestricted | ContactPersonalDetailsVisible;
|
|
@@ -1148,9 +1257,18 @@ export type AgentCommented = {
|
|
|
1148
1257
|
commentSnippet?: string;
|
|
1149
1258
|
kind: 'AGENT_COMMENTED';
|
|
1150
1259
|
};
|
|
1260
|
+
export type ChannelReauthRequired = {
|
|
1261
|
+
connectionId?: ConnectionId;
|
|
1262
|
+
channelType?: 'FACEBOOK' | 'INSTAGRAM' | 'WHATSAPP' | 'TIKTOK';
|
|
1263
|
+
displayName?: string;
|
|
1264
|
+
kind: 'CHANNEL_REAUTH_REQUIRED';
|
|
1265
|
+
};
|
|
1151
1266
|
export type CommentId = {
|
|
1152
1267
|
value?: string;
|
|
1153
1268
|
};
|
|
1269
|
+
export type ConnectionId = {
|
|
1270
|
+
value?: string;
|
|
1271
|
+
};
|
|
1154
1272
|
export type ContactAssigned = {
|
|
1155
1273
|
contactId?: ContactId;
|
|
1156
1274
|
contactName?: string;
|
|
@@ -1206,15 +1324,28 @@ export type NotificationFeed = {
|
|
|
1206
1324
|
export type NotificationView = {
|
|
1207
1325
|
id: string;
|
|
1208
1326
|
seq: number;
|
|
1209
|
-
type: 'AGENT_COMMENTED' | 'TASK_COMMENTED' | 'EXTERNAL_LISTING_EXPIRED' | 'LISTING_EXPIRED' | 'NEW_SEEKER_RATING' | 'NEW_MESSAGE' | 'CONTACT_ASSIGNED' | 'SUBSCRIPTION_PAYMENT_FAILED' | 'SUBSCRIPTION_ENDING' | 'SUBSCRIPTION_EXPIRED' | 'SUBSCRIPTION_PAYMENT_REVERSED';
|
|
1327
|
+
type: 'AGENT_COMMENTED' | 'TASK_COMMENTED' | 'EXTERNAL_LISTING_EXPIRED' | 'LISTING_EXPIRED' | 'NEW_SEEKER_RATING' | 'NEW_MESSAGE' | 'CONTACT_ASSIGNED' | 'SUBSCRIPTION_PAYMENT_FAILED' | 'SUBSCRIPTION_ENDING' | 'SUBSCRIPTION_EXPIRED' | 'SUBSCRIPTION_PAYMENT_REVERSED' | 'CHANNEL_REAUTH_REQUIRED' | 'SOCIAL_POST_FAILED';
|
|
1210
1328
|
targetId?: string;
|
|
1211
|
-
payload: AgentCommented | ContactAssigned | ListingExpired | NewMessage | NewSeekerRating | SubscriptionEnding | SubscriptionExpired | SubscriptionPaymentFailed | SubscriptionPaymentReversed | TaskCommented;
|
|
1329
|
+
payload: AgentCommented | ChannelReauthRequired | ContactAssigned | ListingExpired | NewMessage | NewSeekerRating | SocialPostFailed | SubscriptionEnding | SubscriptionExpired | SubscriptionPaymentFailed | SubscriptionPaymentReversed | TaskCommented;
|
|
1212
1330
|
createdAt: Date;
|
|
1213
1331
|
read: boolean;
|
|
1214
1332
|
};
|
|
1215
1333
|
export type PropertyId = {
|
|
1216
1334
|
value?: number;
|
|
1217
1335
|
};
|
|
1336
|
+
export type SocialPostFailed = {
|
|
1337
|
+
postId?: SocialPostId;
|
|
1338
|
+
contactId?: ContactId;
|
|
1339
|
+
propertyId?: PropertyId;
|
|
1340
|
+
listingId?: number;
|
|
1341
|
+
propertyTitle?: string;
|
|
1342
|
+
channel?: 'FACEBOOK' | 'INSTAGRAM';
|
|
1343
|
+
reason?: 'RECONNECT_REQUIRED' | 'PERMISSION_MISSING' | 'PAGE_PUBLISHING_AUTHORIZATION' | 'RATE_LIMITED' | 'BAD_MEDIA' | 'UNCONFIRMED' | 'UNKNOWN';
|
|
1344
|
+
kind: 'SOCIAL_POST_FAILED';
|
|
1345
|
+
};
|
|
1346
|
+
export type SocialPostId = {
|
|
1347
|
+
value?: string;
|
|
1348
|
+
};
|
|
1218
1349
|
export type SubscriptionEnding = {
|
|
1219
1350
|
subscriptionId?: SubscriptionId;
|
|
1220
1351
|
status?: 'PENDING' | 'TRIALING' | 'ACTIVE' | 'PAST_DUE' | 'CANCELLED' | 'EXPIRED' | 'SUPERSEDED';
|
|
@@ -1348,6 +1479,10 @@ export type ListingGridResponse = {
|
|
|
1348
1479
|
commissionType?: 'NOT_SET' | 'FIXED' | 'PERCENTAGE' | 'MONTHS_OF_RENT';
|
|
1349
1480
|
commission?: number;
|
|
1350
1481
|
platforms: Array<PlatformView>;
|
|
1482
|
+
/**
|
|
1483
|
+
* Where the listing is posted on Facebook / Instagram: the latest published post per channel
|
|
1484
|
+
*/
|
|
1485
|
+
socialPosts: Array<SocialPostLink>;
|
|
1351
1486
|
createdAt: Date;
|
|
1352
1487
|
updatedAt: Date;
|
|
1353
1488
|
};
|
|
@@ -1362,6 +1497,13 @@ export type PlatformView = {
|
|
|
1362
1497
|
tier?: 'VIP' | 'VIP_PLUS' | 'SUPER_VIP';
|
|
1363
1498
|
boostExpiresAt?: Date;
|
|
1364
1499
|
};
|
|
1500
|
+
export type SocialPostLink = {
|
|
1501
|
+
channel: 'FACEBOOK' | 'INSTAGRAM';
|
|
1502
|
+
/**
|
|
1503
|
+
* Opens the post on Facebook / Instagram
|
|
1504
|
+
*/
|
|
1505
|
+
permalink: string;
|
|
1506
|
+
};
|
|
1365
1507
|
export type GroupCount = {
|
|
1366
1508
|
groupKey: string;
|
|
1367
1509
|
label: string;
|
|
@@ -1486,6 +1628,57 @@ export type CursorPageMessageView = {
|
|
|
1486
1628
|
nextCursor?: string;
|
|
1487
1629
|
hasNext?: boolean;
|
|
1488
1630
|
};
|
|
1631
|
+
export type ComposerLimits = {
|
|
1632
|
+
maxPhotos: number;
|
|
1633
|
+
/**
|
|
1634
|
+
* In Unicode code points: an emoji counts once, as [...text].length counts in JavaScript (text.length counts it twice)
|
|
1635
|
+
*/
|
|
1636
|
+
maxCaptionLength: number;
|
|
1637
|
+
};
|
|
1638
|
+
export type ComposerPhoto = {
|
|
1639
|
+
/**
|
|
1640
|
+
* What the publish request sends
|
|
1641
|
+
*/
|
|
1642
|
+
photoId: number;
|
|
1643
|
+
url: string;
|
|
1644
|
+
/**
|
|
1645
|
+
* As the photo is shown, in pixels
|
|
1646
|
+
*/
|
|
1647
|
+
width: number;
|
|
1648
|
+
/**
|
|
1649
|
+
* As the photo is shown, in pixels
|
|
1650
|
+
*/
|
|
1651
|
+
height: number;
|
|
1652
|
+
selectedByDefault: boolean;
|
|
1653
|
+
};
|
|
1654
|
+
export type ComposerPreview = {
|
|
1655
|
+
channel: 'FACEBOOK' | 'INSTAGRAM';
|
|
1656
|
+
/**
|
|
1657
|
+
* The built-in Georgian template filled in from the listing; a line with nothing to fill it is left out
|
|
1658
|
+
*/
|
|
1659
|
+
caption: string;
|
|
1660
|
+
/**
|
|
1661
|
+
* The template the text came from, sent back on publish; null for the built-in one
|
|
1662
|
+
*/
|
|
1663
|
+
templateId?: string;
|
|
1664
|
+
limits: ComposerLimits;
|
|
1665
|
+
/**
|
|
1666
|
+
* The shapes the agent can pick; empty on Facebook, which keeps each photo's own
|
|
1667
|
+
*/
|
|
1668
|
+
ratios: Array<'LANDSCAPE' | 'SQUARE' | 'PORTRAIT'>;
|
|
1669
|
+
/**
|
|
1670
|
+
* Instagram only
|
|
1671
|
+
*/
|
|
1672
|
+
defaultRatio?: 'LANDSCAPE' | 'SQUARE' | 'PORTRAIT';
|
|
1673
|
+
/**
|
|
1674
|
+
* The whole gallery, in gallery order
|
|
1675
|
+
*/
|
|
1676
|
+
photos: Array<ComposerPhoto>;
|
|
1677
|
+
/**
|
|
1678
|
+
* Whether the agency can post to the channel now; publishing refuses anything but ALLOWED
|
|
1679
|
+
*/
|
|
1680
|
+
access: 'ALLOWED' | 'NOT_CONNECTED' | 'RECONNECT_REQUIRED';
|
|
1681
|
+
};
|
|
1489
1682
|
export type ContactGridResponse = {
|
|
1490
1683
|
id: number;
|
|
1491
1684
|
createdBy?: string;
|
|
@@ -2873,13 +3066,6 @@ export type DeleteSubscriptionsData = {
|
|
|
2873
3066
|
query?: never;
|
|
2874
3067
|
url: '/subscriptions';
|
|
2875
3068
|
};
|
|
2876
|
-
export type DeleteSubscriptionsErrors = {
|
|
2877
|
-
/**
|
|
2878
|
-
* Registration conflicts, subscription state, or concurrent changes prevent this operation. Inspect code to select the error type.
|
|
2879
|
-
*/
|
|
2880
|
-
409: SubscriptionConflictResponse;
|
|
2881
|
-
};
|
|
2882
|
-
export type DeleteSubscriptionsError = DeleteSubscriptionsErrors[keyof DeleteSubscriptionsErrors];
|
|
2883
3069
|
export type DeleteSubscriptionsResponses = {
|
|
2884
3070
|
/**
|
|
2885
3071
|
* No Content
|
|
@@ -2893,43 +3079,24 @@ export type GetSubscriptionsData = {
|
|
|
2893
3079
|
query?: never;
|
|
2894
3080
|
url: '/subscriptions';
|
|
2895
3081
|
};
|
|
2896
|
-
export type
|
|
3082
|
+
export type GetSubscriptionsResponses = {
|
|
2897
3083
|
/**
|
|
2898
|
-
*
|
|
3084
|
+
* OK
|
|
2899
3085
|
*/
|
|
2900
|
-
|
|
3086
|
+
200: SubscriptionResponse;
|
|
2901
3087
|
};
|
|
2902
|
-
export type
|
|
3088
|
+
export type GetSubscriptionsResponse = GetSubscriptionsResponses[keyof GetSubscriptionsResponses];
|
|
2903
3089
|
export type PostSubscriptionsData = {
|
|
2904
3090
|
body: SubscribeRequest;
|
|
2905
3091
|
path?: never;
|
|
2906
3092
|
query?: never;
|
|
2907
3093
|
url: '/subscriptions';
|
|
2908
3094
|
};
|
|
2909
|
-
export type PostSubscriptionsErrors = {
|
|
2910
|
-
/**
|
|
2911
|
-
* Malformed request or invalid field values
|
|
2912
|
-
*/
|
|
2913
|
-
400: ProblemDetail;
|
|
2914
|
-
/**
|
|
2915
|
-
* Registration conflicts, subscription state, or concurrent changes prevent this operation. Inspect code to select the error type.
|
|
2916
|
-
*/
|
|
2917
|
-
409: SubscriptionConflictResponse;
|
|
2918
|
-
/**
|
|
2919
|
-
* Payment provider unavailable; retry to recover saved checkout details
|
|
2920
|
-
*/
|
|
2921
|
-
502: ProblemDetail;
|
|
2922
|
-
};
|
|
2923
|
-
export type PostSubscriptionsError = PostSubscriptionsErrors[keyof PostSubscriptionsErrors];
|
|
2924
3095
|
export type PostSubscriptionsResponses = {
|
|
2925
3096
|
/**
|
|
2926
|
-
*
|
|
3097
|
+
* OK
|
|
2927
3098
|
*/
|
|
2928
3099
|
200: SubscriptionCheckoutResponse;
|
|
2929
|
-
/**
|
|
2930
|
-
* Checkout available
|
|
2931
|
-
*/
|
|
2932
|
-
201: SubscriptionCheckoutResponse;
|
|
2933
3100
|
};
|
|
2934
3101
|
export type PostSubscriptionsResponse = PostSubscriptionsResponses[keyof PostSubscriptionsResponses];
|
|
2935
3102
|
export type PostSubscriptionsResumeData = {
|
|
@@ -2938,13 +3105,6 @@ export type PostSubscriptionsResumeData = {
|
|
|
2938
3105
|
query?: never;
|
|
2939
3106
|
url: '/subscriptions/resume';
|
|
2940
3107
|
};
|
|
2941
|
-
export type PostSubscriptionsResumeErrors = {
|
|
2942
|
-
/**
|
|
2943
|
-
* Registration conflicts, subscription state, or concurrent changes prevent this operation. Inspect code to select the error type.
|
|
2944
|
-
*/
|
|
2945
|
-
409: SubscriptionConflictResponse;
|
|
2946
|
-
};
|
|
2947
|
-
export type PostSubscriptionsResumeError = PostSubscriptionsResumeErrors[keyof PostSubscriptionsResumeErrors];
|
|
2948
3108
|
export type PostSubscriptionsResumeResponses = {
|
|
2949
3109
|
/**
|
|
2950
3110
|
* No Content
|
|
@@ -2958,13 +3118,6 @@ export type PostSubscriptionsPlanData = {
|
|
|
2958
3118
|
query?: never;
|
|
2959
3119
|
url: '/subscriptions/plan';
|
|
2960
3120
|
};
|
|
2961
|
-
export type PostSubscriptionsPlanErrors = {
|
|
2962
|
-
/**
|
|
2963
|
-
* Registration conflicts, subscription state, or concurrent changes prevent this operation. Inspect code to select the error type.
|
|
2964
|
-
*/
|
|
2965
|
-
409: SubscriptionConflictResponse;
|
|
2966
|
-
};
|
|
2967
|
-
export type PostSubscriptionsPlanError = PostSubscriptionsPlanErrors[keyof PostSubscriptionsPlanErrors];
|
|
2968
3121
|
export type PostSubscriptionsPlanResponses = {
|
|
2969
3122
|
/**
|
|
2970
3123
|
* Created
|
|
@@ -2978,13 +3131,6 @@ export type PostSubscriptionsCheckoutData = {
|
|
|
2978
3131
|
query?: never;
|
|
2979
3132
|
url: '/subscriptions/checkout';
|
|
2980
3133
|
};
|
|
2981
|
-
export type PostSubscriptionsCheckoutErrors = {
|
|
2982
|
-
/**
|
|
2983
|
-
* Registration conflicts, subscription state, or concurrent changes prevent this operation. Inspect code to select the error type.
|
|
2984
|
-
*/
|
|
2985
|
-
409: SubscriptionConflictResponse;
|
|
2986
|
-
};
|
|
2987
|
-
export type PostSubscriptionsCheckoutError = PostSubscriptionsCheckoutErrors[keyof PostSubscriptionsCheckoutErrors];
|
|
2988
3134
|
export type PostSubscriptionsCheckoutResponses = {
|
|
2989
3135
|
/**
|
|
2990
3136
|
* Created
|
|
@@ -3511,6 +3657,41 @@ export type PostContactsByContactIdPropertiesByPropertyIdListingsResponses = {
|
|
|
3511
3657
|
201: IdResponseUuid;
|
|
3512
3658
|
};
|
|
3513
3659
|
export type PostContactsByContactIdPropertiesByPropertyIdListingsResponse = PostContactsByContactIdPropertiesByPropertyIdListingsResponses[keyof PostContactsByContactIdPropertiesByPropertyIdListingsResponses];
|
|
3660
|
+
export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsData = {
|
|
3661
|
+
body: PublishSocialPostRequest;
|
|
3662
|
+
path: {
|
|
3663
|
+
contactId: number;
|
|
3664
|
+
propertyId: number;
|
|
3665
|
+
listingId: number;
|
|
3666
|
+
};
|
|
3667
|
+
query?: never;
|
|
3668
|
+
url: '/contacts/{contactId}/properties/{propertyId}/listings/{listingId}/social-posts';
|
|
3669
|
+
};
|
|
3670
|
+
export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsResponses = {
|
|
3671
|
+
/**
|
|
3672
|
+
* Accepted
|
|
3673
|
+
*/
|
|
3674
|
+
202: SocialPostView;
|
|
3675
|
+
};
|
|
3676
|
+
export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsResponse = PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsResponses[keyof PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsResponses];
|
|
3677
|
+
export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdRetryData = {
|
|
3678
|
+
body?: never;
|
|
3679
|
+
path: {
|
|
3680
|
+
contactId: number;
|
|
3681
|
+
propertyId: number;
|
|
3682
|
+
listingId: number;
|
|
3683
|
+
postId: string;
|
|
3684
|
+
};
|
|
3685
|
+
query?: never;
|
|
3686
|
+
url: '/contacts/{contactId}/properties/{propertyId}/listings/{listingId}/social-posts/{postId}/retry';
|
|
3687
|
+
};
|
|
3688
|
+
export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdRetryResponses = {
|
|
3689
|
+
/**
|
|
3690
|
+
* Accepted
|
|
3691
|
+
*/
|
|
3692
|
+
202: SocialPostView;
|
|
3693
|
+
};
|
|
3694
|
+
export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdRetryResponse = PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdRetryResponses[keyof PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdRetryResponses];
|
|
3514
3695
|
export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdResumeData = {
|
|
3515
3696
|
body?: never;
|
|
3516
3697
|
path: {
|
|
@@ -3761,6 +3942,21 @@ export type PostContactResponses = {
|
|
|
3761
3942
|
201: IdResponseLong;
|
|
3762
3943
|
};
|
|
3763
3944
|
export type PostContactResponse = PostContactResponses[keyof PostContactResponses];
|
|
3945
|
+
export type PostContactByContactIdPropertyByPropertyIdExternalListingWithdrawData = {
|
|
3946
|
+
body: ExternalListingWithdrawRequest;
|
|
3947
|
+
path: {
|
|
3948
|
+
contactId: number;
|
|
3949
|
+
propertyId: number;
|
|
3950
|
+
};
|
|
3951
|
+
query?: never;
|
|
3952
|
+
url: '/contact/{contactId}/property/{propertyId}/external-listing/withdraw';
|
|
3953
|
+
};
|
|
3954
|
+
export type PostContactByContactIdPropertyByPropertyIdExternalListingWithdrawResponses = {
|
|
3955
|
+
/**
|
|
3956
|
+
* OK
|
|
3957
|
+
*/
|
|
3958
|
+
200: unknown;
|
|
3959
|
+
};
|
|
3764
3960
|
export type PostContactByContactIdPropertyByPropertyIdExternalListingPublishData = {
|
|
3765
3961
|
body: ExternalListingPublishRequest;
|
|
3766
3962
|
path: {
|
|
@@ -3996,13 +4192,13 @@ export type GetSubscriptionsPaymentsData = {
|
|
|
3996
4192
|
query?: never;
|
|
3997
4193
|
url: '/subscriptions/payments';
|
|
3998
4194
|
};
|
|
3999
|
-
export type
|
|
4195
|
+
export type GetSubscriptionsPaymentsResponses = {
|
|
4000
4196
|
/**
|
|
4001
|
-
*
|
|
4197
|
+
* OK
|
|
4002
4198
|
*/
|
|
4003
|
-
|
|
4199
|
+
200: Array<PaymentResponse>;
|
|
4004
4200
|
};
|
|
4005
|
-
export type
|
|
4201
|
+
export type GetSubscriptionsPaymentsResponse = GetSubscriptionsPaymentsResponses[keyof GetSubscriptionsPaymentsResponses];
|
|
4006
4202
|
export type GetStatsPipelineCommissionData = {
|
|
4007
4203
|
body?: never;
|
|
4008
4204
|
path?: never;
|
|
@@ -4521,6 +4717,7 @@ export type GetListingData = {
|
|
|
4521
4717
|
platforms?: Array<'SS' | 'MY_HOME'>;
|
|
4522
4718
|
platformExpiresFrom?: Date;
|
|
4523
4719
|
platformExpiresTo?: Date;
|
|
4720
|
+
socialChannels?: Array<'FACEBOOK' | 'INSTAGRAM'>;
|
|
4524
4721
|
boostTiers?: Array<string>;
|
|
4525
4722
|
boostExpiresFrom?: Date;
|
|
4526
4723
|
boostExpiresTo?: Date;
|
|
@@ -4587,6 +4784,7 @@ export type GetListingGroupsData = {
|
|
|
4587
4784
|
platforms?: Array<'SS' | 'MY_HOME'>;
|
|
4588
4785
|
platformExpiresFrom?: Date;
|
|
4589
4786
|
platformExpiresTo?: Date;
|
|
4787
|
+
socialChannels?: Array<'FACEBOOK' | 'INSTAGRAM'>;
|
|
4590
4788
|
boostTiers?: Array<string>;
|
|
4591
4789
|
boostExpiresFrom?: Date;
|
|
4592
4790
|
boostExpiresTo?: Date;
|
|
@@ -4771,6 +4969,43 @@ export type GetConversationsByConversationIdUpdatesResponses = {
|
|
|
4771
4969
|
200: ThreadUpdates;
|
|
4772
4970
|
};
|
|
4773
4971
|
export type GetConversationsByConversationIdUpdatesResponse = GetConversationsByConversationIdUpdatesResponses[keyof GetConversationsByConversationIdUpdatesResponses];
|
|
4972
|
+
export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdData = {
|
|
4973
|
+
body?: never;
|
|
4974
|
+
path: {
|
|
4975
|
+
contactId: number;
|
|
4976
|
+
propertyId: number;
|
|
4977
|
+
listingId: number;
|
|
4978
|
+
postId: string;
|
|
4979
|
+
};
|
|
4980
|
+
query?: never;
|
|
4981
|
+
url: '/contacts/{contactId}/properties/{propertyId}/listings/{listingId}/social-posts/{postId}';
|
|
4982
|
+
};
|
|
4983
|
+
export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdResponses = {
|
|
4984
|
+
/**
|
|
4985
|
+
* OK
|
|
4986
|
+
*/
|
|
4987
|
+
200: SocialPostView;
|
|
4988
|
+
};
|
|
4989
|
+
export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdResponse = GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdResponses[keyof GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdResponses];
|
|
4990
|
+
export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsPreviewData = {
|
|
4991
|
+
body?: never;
|
|
4992
|
+
path: {
|
|
4993
|
+
contactId: number;
|
|
4994
|
+
propertyId: number;
|
|
4995
|
+
listingId: number;
|
|
4996
|
+
};
|
|
4997
|
+
query: {
|
|
4998
|
+
channel: 'FACEBOOK' | 'INSTAGRAM';
|
|
4999
|
+
};
|
|
5000
|
+
url: '/contacts/{contactId}/properties/{propertyId}/listings/{listingId}/social-posts/preview';
|
|
5001
|
+
};
|
|
5002
|
+
export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsPreviewResponses = {
|
|
5003
|
+
/**
|
|
5004
|
+
* OK
|
|
5005
|
+
*/
|
|
5006
|
+
200: ComposerPreview;
|
|
5007
|
+
};
|
|
5008
|
+
export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsPreviewResponse = GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsPreviewResponses[keyof GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsPreviewResponses];
|
|
4774
5009
|
export type GetContactsByContactIdInterestsByInterestIdRecommendationsDecisionsData = {
|
|
4775
5010
|
body?: never;
|
|
4776
5011
|
path: {
|