@homespot-sdk/core 0.0.358 → 0.0.360
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 +758 -141
- package/dist/rem/schemas.gen.d.ts.map +1 -1
- package/dist/rem/schemas.gen.js +829 -127
- package/dist/rem/schemas.gen.js.map +1 -1
- package/dist/rem/sdk.gen.d.ts +8 -2
- package/dist/rem/sdk.gen.d.ts.map +1 -1
- package/dist/rem/sdk.gen.js +45 -2
- 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 +56 -0
- package/dist/rem/transformers.gen.js.map +1 -1
- package/dist/rem/types.gen.d.ts +387 -45
- package/dist/rem/types.gen.d.ts.map +1 -1
- package/dist/rem/zod.gen.d.ts +2093 -270
- package/dist/rem/zod.gen.d.ts.map +1 -1
- package/dist/rem/zod.gen.js +577 -47
- 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
|
@@ -314,6 +314,17 @@ export type OauthConnectionResponse = {
|
|
|
314
314
|
createdAt: Date;
|
|
315
315
|
updatedAt: Date;
|
|
316
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;
|
|
317
328
|
};
|
|
318
329
|
export type AttendeeRequest = {
|
|
319
330
|
role: 'ORGANIZER' | 'MEMBER' | 'OWNER' | 'CLIENT' | 'OTHER';
|
|
@@ -415,6 +426,58 @@ export type Percentage = Omit<AddDealRequest, 'type'> & {
|
|
|
415
426
|
commission?: number;
|
|
416
427
|
type: 'PERCENTAGE';
|
|
417
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
|
+
};
|
|
418
481
|
export type CloseListingRequest = {
|
|
419
482
|
withdrawExternal?: boolean;
|
|
420
483
|
};
|
|
@@ -435,6 +498,10 @@ export type OnboardClientRequest = {
|
|
|
435
498
|
export type IdResponseLong = {
|
|
436
499
|
id: number;
|
|
437
500
|
};
|
|
501
|
+
export type ExternalListingWithdrawRequest = {
|
|
502
|
+
platform: 'SS' | 'MY_HOME';
|
|
503
|
+
listingId: number;
|
|
504
|
+
};
|
|
438
505
|
export type ExternalListingPublishRequest = {
|
|
439
506
|
platform: 'SS' | 'MY_HOME';
|
|
440
507
|
listingId: number;
|
|
@@ -545,17 +612,13 @@ export type CommentView = {
|
|
|
545
612
|
authorLastName: string;
|
|
546
613
|
profilePictureUrl?: string;
|
|
547
614
|
body: string;
|
|
615
|
+
mentionedMembers: Array<MemberPeekResponse>;
|
|
616
|
+
mentionedContacts: Array<ContactMentionView>;
|
|
548
617
|
createdAt: Date;
|
|
549
618
|
editedAt?: Date;
|
|
550
619
|
};
|
|
551
|
-
export type
|
|
552
|
-
items?: Array<CommentView>;
|
|
553
|
-
nextCursor?: string;
|
|
554
|
-
hasNext?: boolean;
|
|
555
|
-
};
|
|
556
|
-
export type ContactLink = {
|
|
620
|
+
export type ContactMentionView = {
|
|
557
621
|
contactId: number;
|
|
558
|
-
primary: boolean;
|
|
559
622
|
personalDetails: ContactPersonalDetailsRestricted | ContactPersonalDetailsVisible;
|
|
560
623
|
contactAssignedTo?: string;
|
|
561
624
|
};
|
|
@@ -570,6 +633,25 @@ export type ContactPersonalDetailsVisible = {
|
|
|
570
633
|
email?: string;
|
|
571
634
|
status: 'VISIBLE';
|
|
572
635
|
};
|
|
636
|
+
export type CursorPageCommentView = {
|
|
637
|
+
items?: Array<CommentView>;
|
|
638
|
+
nextCursor?: string;
|
|
639
|
+
hasNext?: boolean;
|
|
640
|
+
};
|
|
641
|
+
export type MemberPeekResponse = {
|
|
642
|
+
memberId: string;
|
|
643
|
+
firstName: string;
|
|
644
|
+
lastName: string;
|
|
645
|
+
photo?: string;
|
|
646
|
+
phone?: string;
|
|
647
|
+
email: string;
|
|
648
|
+
};
|
|
649
|
+
export type ContactLink = {
|
|
650
|
+
contactId: number;
|
|
651
|
+
primary: boolean;
|
|
652
|
+
personalDetails: ContactPersonalDetailsRestricted | ContactPersonalDetailsVisible;
|
|
653
|
+
contactAssignedTo?: string;
|
|
654
|
+
};
|
|
573
655
|
export type InterestLink = {
|
|
574
656
|
interestId: number;
|
|
575
657
|
contactId: number;
|
|
@@ -591,14 +673,6 @@ export type LocationResponse = {
|
|
|
591
673
|
id: number;
|
|
592
674
|
names: Array<LangTextResponse>;
|
|
593
675
|
};
|
|
594
|
-
export type MemberPeekResponse = {
|
|
595
|
-
memberId: string;
|
|
596
|
-
firstName: string;
|
|
597
|
-
lastName: string;
|
|
598
|
-
photo?: string;
|
|
599
|
-
phone?: string;
|
|
600
|
-
email: string;
|
|
601
|
-
};
|
|
602
676
|
export type Participant = {
|
|
603
677
|
memberId: string;
|
|
604
678
|
firstName: string;
|
|
@@ -669,37 +743,42 @@ export type TodoItem = {
|
|
|
669
743
|
completedAt?: Date;
|
|
670
744
|
completedBy?: string;
|
|
671
745
|
};
|
|
672
|
-
export type
|
|
746
|
+
export type ContactTaskCardResponse = {
|
|
673
747
|
taskId: string;
|
|
674
|
-
title: string;
|
|
675
|
-
boardId: string;
|
|
676
|
-
boardName: string;
|
|
677
748
|
stageId: string;
|
|
678
749
|
stageName: string;
|
|
679
|
-
|
|
750
|
+
title: string;
|
|
751
|
+
hasDescription: boolean;
|
|
752
|
+
commentCount: number;
|
|
753
|
+
contactCount: number;
|
|
754
|
+
priority: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
|
|
680
755
|
value?: number;
|
|
756
|
+
commissionType?: 'NOT_SET' | 'FIXED' | 'PERCENTAGE' | 'MONTHS_OF_RENT';
|
|
757
|
+
commissionValue?: number;
|
|
758
|
+
ownerId?: string;
|
|
759
|
+
primaryContactId?: number;
|
|
760
|
+
primaryContact?: ContactPersonalDetailsRestricted | ContactPersonalDetailsVisible;
|
|
761
|
+
contactAssignedTo?: string;
|
|
762
|
+
primaryContent?: TaskContentInterest | TaskContentProperty;
|
|
763
|
+
participants: Array<string>;
|
|
764
|
+
rank: string;
|
|
765
|
+
stageEnteredAt: Date;
|
|
766
|
+
daysInStage: number;
|
|
767
|
+
openTodos: number;
|
|
768
|
+
totalTodos: number;
|
|
769
|
+
hasLeftoverOpenTodos: boolean;
|
|
770
|
+
expectedCloseDate?: Date;
|
|
771
|
+
outcome?: 'WON' | 'LOST';
|
|
772
|
+
lostReason?: 'NOT_WORKING_WITH_AGENTS' | 'NOT_RESPONDING' | 'ALREADY_SOLD' | 'COULD_NOT_NEGOTIATE_PRICE' | 'CHOSE_ANOTHER_AGENCY' | 'CHANGED_PLANS' | 'OUT_OF_BUDGET' | 'SPAM' | 'OTHER';
|
|
773
|
+
closedAt?: Date;
|
|
774
|
+
boardId: string;
|
|
775
|
+
boardName: string;
|
|
776
|
+
stageColor: string;
|
|
681
777
|
primary: boolean;
|
|
682
778
|
};
|
|
683
|
-
export type
|
|
684
|
-
boardId: string;
|
|
685
|
-
name: string;
|
|
686
|
-
kind?: 'OWNER' | 'SEEKER';
|
|
779
|
+
export type ContactTasksResponse = {
|
|
687
780
|
members: Array<MemberPeekResponse>;
|
|
688
|
-
|
|
689
|
-
};
|
|
690
|
-
export type Column = {
|
|
691
|
-
stageId: string;
|
|
692
|
-
name: string;
|
|
693
|
-
color: string;
|
|
694
|
-
position: number;
|
|
695
|
-
totalTasks: number;
|
|
696
|
-
totalValue: number;
|
|
697
|
-
cards: CursorPageTaskCardResponse;
|
|
698
|
-
};
|
|
699
|
-
export type CursorPageTaskCardResponse = {
|
|
700
|
-
items?: Array<TaskCardResponse>;
|
|
701
|
-
nextCursor?: string;
|
|
702
|
-
hasNext?: boolean;
|
|
781
|
+
items: Array<ContactTaskCardResponse>;
|
|
703
782
|
};
|
|
704
783
|
export type TaskCardResponse = {
|
|
705
784
|
taskId: string;
|
|
@@ -746,6 +825,27 @@ export type TaskContentProperty = Omit<TaskContent, 'type'> & {
|
|
|
746
825
|
title?: string;
|
|
747
826
|
type: 'PROPERTY';
|
|
748
827
|
};
|
|
828
|
+
export type BoardCardsResponse = {
|
|
829
|
+
boardId: string;
|
|
830
|
+
name: string;
|
|
831
|
+
kind?: 'OWNER' | 'SEEKER';
|
|
832
|
+
members: Array<MemberPeekResponse>;
|
|
833
|
+
columns: Array<Column>;
|
|
834
|
+
};
|
|
835
|
+
export type Column = {
|
|
836
|
+
stageId: string;
|
|
837
|
+
name: string;
|
|
838
|
+
color: string;
|
|
839
|
+
position: number;
|
|
840
|
+
totalTasks: number;
|
|
841
|
+
totalValue: number;
|
|
842
|
+
cards: CursorPageTaskCardResponse;
|
|
843
|
+
};
|
|
844
|
+
export type CursorPageTaskCardResponse = {
|
|
845
|
+
items?: Array<TaskCardResponse>;
|
|
846
|
+
nextCursor?: string;
|
|
847
|
+
hasNext?: boolean;
|
|
848
|
+
};
|
|
749
849
|
export type StageCardsResponse = {
|
|
750
850
|
members: Array<MemberPeekResponse>;
|
|
751
851
|
data: CursorPageTaskCardResponse;
|
|
@@ -1082,10 +1182,11 @@ export type DealResponse = {
|
|
|
1082
1182
|
export type PlatformListingResponse = {
|
|
1083
1183
|
platformId?: number;
|
|
1084
1184
|
platformType: 'SS' | 'MY_HOME';
|
|
1085
|
-
status: 'PENDING' | 'SYNDICATED' | 'FAILED' | 'EXPIRED';
|
|
1185
|
+
status: 'PENDING' | 'SYNDICATED' | 'FAILED' | 'EXPIRED' | 'WITHDRAWING' | 'WITHDRAWN';
|
|
1086
1186
|
listedAt?: Date;
|
|
1087
1187
|
expiresAt?: Date;
|
|
1088
1188
|
renewedAt?: Date;
|
|
1189
|
+
failureReason?: string;
|
|
1089
1190
|
boost?: BoostResponse;
|
|
1090
1191
|
coloredListing?: ColoredListingResponse;
|
|
1091
1192
|
};
|
|
@@ -1109,12 +1210,16 @@ export type PropertyListingResponse = {
|
|
|
1109
1210
|
marketplaceStatus: 'ACTIVE' | 'PAUSED' | 'EXPIRED';
|
|
1110
1211
|
crmState: 'OPEN' | 'CLOSED';
|
|
1111
1212
|
/**
|
|
1112
|
-
* True while an external-portal placement
|
|
1213
|
+
* 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.
|
|
1113
1214
|
*/
|
|
1114
1215
|
isProcessing: boolean;
|
|
1115
1216
|
price: number;
|
|
1116
1217
|
deal?: Fixed | MonthsOfRent | Percentage;
|
|
1117
1218
|
platformListings: Array<PlatformListingResponse>;
|
|
1219
|
+
/**
|
|
1220
|
+
* Facebook / Instagram posts of this listing, newest first
|
|
1221
|
+
*/
|
|
1222
|
+
socialPosts: Array<SocialPostResponse>;
|
|
1118
1223
|
createdAt: Date;
|
|
1119
1224
|
closedAt?: Date;
|
|
1120
1225
|
};
|
|
@@ -1134,6 +1239,45 @@ export type PropertyPageResponse = {
|
|
|
1134
1239
|
updatedAt: Date;
|
|
1135
1240
|
closeReason?: PropertyCloseReasonResponse;
|
|
1136
1241
|
};
|
|
1242
|
+
export type SocialPostResponse = {
|
|
1243
|
+
/**
|
|
1244
|
+
* For retrying a failed post, or reading it in full
|
|
1245
|
+
*/
|
|
1246
|
+
postId: string;
|
|
1247
|
+
channel: 'FACEBOOK' | 'INSTAGRAM';
|
|
1248
|
+
status: 'PUBLISHING' | 'PUBLISHED' | 'FAILED' | 'REMOVED';
|
|
1249
|
+
/**
|
|
1250
|
+
* Exactly as published
|
|
1251
|
+
*/
|
|
1252
|
+
caption: string;
|
|
1253
|
+
/**
|
|
1254
|
+
* The post's first photo, as uploaded to the gallery (not the Instagram crop)
|
|
1255
|
+
*/
|
|
1256
|
+
thumbnailUrl?: string;
|
|
1257
|
+
/**
|
|
1258
|
+
* The post on Facebook / Instagram, once published
|
|
1259
|
+
*/
|
|
1260
|
+
permalink?: string;
|
|
1261
|
+
publishedAt?: Date;
|
|
1262
|
+
/**
|
|
1263
|
+
* The member who created the post, also after they left the agency
|
|
1264
|
+
*/
|
|
1265
|
+
createdBy: MemberPeekResponse;
|
|
1266
|
+
failureReason?: 'RECONNECT_REQUIRED' | 'PERMISSION_MISSING' | 'PAGE_PUBLISHING_AUTHORIZATION' | 'RATE_LIMITED' | 'BAD_MEDIA' | 'UNCONFIRMED' | 'UNKNOWN';
|
|
1267
|
+
/**
|
|
1268
|
+
* The post's public counts as last read from Facebook / Instagram; null until the first read
|
|
1269
|
+
*/
|
|
1270
|
+
stats?: SocialPostStats;
|
|
1271
|
+
};
|
|
1272
|
+
export type SocialPostStats = {
|
|
1273
|
+
likes: number;
|
|
1274
|
+
comments: number;
|
|
1275
|
+
shares: number;
|
|
1276
|
+
/**
|
|
1277
|
+
* When the counts were read — show how old they are
|
|
1278
|
+
*/
|
|
1279
|
+
fetchedAt: Date;
|
|
1280
|
+
};
|
|
1137
1281
|
export type ListingOwnerContactResponse = {
|
|
1138
1282
|
contactId: number;
|
|
1139
1283
|
personalDetails: ContactPersonalDetailsRestricted | ContactPersonalDetailsVisible;
|
|
@@ -1146,9 +1290,18 @@ export type AgentCommented = {
|
|
|
1146
1290
|
commentSnippet?: string;
|
|
1147
1291
|
kind: 'AGENT_COMMENTED';
|
|
1148
1292
|
};
|
|
1293
|
+
export type ChannelReauthRequired = {
|
|
1294
|
+
connectionId?: ConnectionId;
|
|
1295
|
+
channelType?: 'FACEBOOK' | 'INSTAGRAM' | 'WHATSAPP' | 'TIKTOK';
|
|
1296
|
+
displayName?: string;
|
|
1297
|
+
kind: 'CHANNEL_REAUTH_REQUIRED';
|
|
1298
|
+
};
|
|
1149
1299
|
export type CommentId = {
|
|
1150
1300
|
value?: string;
|
|
1151
1301
|
};
|
|
1302
|
+
export type ConnectionId = {
|
|
1303
|
+
value?: string;
|
|
1304
|
+
};
|
|
1152
1305
|
export type ContactAssigned = {
|
|
1153
1306
|
contactId?: ContactId;
|
|
1154
1307
|
contactName?: string;
|
|
@@ -1178,6 +1331,15 @@ export type ListingExpired = {
|
|
|
1178
1331
|
export type MemberId = {
|
|
1179
1332
|
value?: string;
|
|
1180
1333
|
};
|
|
1334
|
+
export type MemberMentioned = {
|
|
1335
|
+
commentId?: CommentId;
|
|
1336
|
+
contactId?: ContactId;
|
|
1337
|
+
taskId?: TaskId;
|
|
1338
|
+
authorId?: MemberId;
|
|
1339
|
+
author?: string;
|
|
1340
|
+
commentSnippet?: string;
|
|
1341
|
+
kind: 'MEMBER_MENTIONED';
|
|
1342
|
+
};
|
|
1181
1343
|
export type NewMessage = {
|
|
1182
1344
|
contactId?: ContactId;
|
|
1183
1345
|
conversationId?: ConversationId;
|
|
@@ -1204,15 +1366,28 @@ export type NotificationFeed = {
|
|
|
1204
1366
|
export type NotificationView = {
|
|
1205
1367
|
id: string;
|
|
1206
1368
|
seq: number;
|
|
1207
|
-
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';
|
|
1369
|
+
type: 'AGENT_COMMENTED' | 'TASK_COMMENTED' | 'MEMBER_MENTIONED' | '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';
|
|
1208
1370
|
targetId?: string;
|
|
1209
|
-
payload: AgentCommented | ContactAssigned | ListingExpired | NewMessage | NewSeekerRating | SubscriptionEnding | SubscriptionExpired | SubscriptionPaymentFailed | SubscriptionPaymentReversed | TaskCommented;
|
|
1371
|
+
payload: AgentCommented | ChannelReauthRequired | ContactAssigned | ListingExpired | MemberMentioned | NewMessage | NewSeekerRating | SocialPostFailed | SubscriptionEnding | SubscriptionExpired | SubscriptionPaymentFailed | SubscriptionPaymentReversed | TaskCommented;
|
|
1210
1372
|
createdAt: Date;
|
|
1211
1373
|
read: boolean;
|
|
1212
1374
|
};
|
|
1213
1375
|
export type PropertyId = {
|
|
1214
1376
|
value?: number;
|
|
1215
1377
|
};
|
|
1378
|
+
export type SocialPostFailed = {
|
|
1379
|
+
postId?: SocialPostId;
|
|
1380
|
+
contactId?: ContactId;
|
|
1381
|
+
propertyId?: PropertyId;
|
|
1382
|
+
listingId?: number;
|
|
1383
|
+
propertyTitle?: string;
|
|
1384
|
+
channel?: 'FACEBOOK' | 'INSTAGRAM';
|
|
1385
|
+
reason?: 'RECONNECT_REQUIRED' | 'PERMISSION_MISSING' | 'PAGE_PUBLISHING_AUTHORIZATION' | 'RATE_LIMITED' | 'BAD_MEDIA' | 'UNCONFIRMED' | 'UNKNOWN';
|
|
1386
|
+
kind: 'SOCIAL_POST_FAILED';
|
|
1387
|
+
};
|
|
1388
|
+
export type SocialPostId = {
|
|
1389
|
+
value?: string;
|
|
1390
|
+
};
|
|
1216
1391
|
export type SubscriptionEnding = {
|
|
1217
1392
|
subscriptionId?: SubscriptionId;
|
|
1218
1393
|
status?: 'PENDING' | 'TRIALING' | 'ACTIVE' | 'PAST_DUE' | 'CANCELLED' | 'EXPIRED' | 'SUPERSEDED';
|
|
@@ -1346,6 +1521,10 @@ export type ListingGridResponse = {
|
|
|
1346
1521
|
commissionType?: 'NOT_SET' | 'FIXED' | 'PERCENTAGE' | 'MONTHS_OF_RENT';
|
|
1347
1522
|
commission?: number;
|
|
1348
1523
|
platforms: Array<PlatformView>;
|
|
1524
|
+
/**
|
|
1525
|
+
* Where the listing is posted on Facebook / Instagram: the latest published post per channel
|
|
1526
|
+
*/
|
|
1527
|
+
socialPosts: Array<SocialPostLink>;
|
|
1349
1528
|
createdAt: Date;
|
|
1350
1529
|
updatedAt: Date;
|
|
1351
1530
|
};
|
|
@@ -1360,6 +1539,13 @@ export type PlatformView = {
|
|
|
1360
1539
|
tier?: 'VIP' | 'VIP_PLUS' | 'SUPER_VIP';
|
|
1361
1540
|
boostExpiresAt?: Date;
|
|
1362
1541
|
};
|
|
1542
|
+
export type SocialPostLink = {
|
|
1543
|
+
channel: 'FACEBOOK' | 'INSTAGRAM';
|
|
1544
|
+
/**
|
|
1545
|
+
* Opens the post on Facebook / Instagram
|
|
1546
|
+
*/
|
|
1547
|
+
permalink: string;
|
|
1548
|
+
};
|
|
1363
1549
|
export type GroupCount = {
|
|
1364
1550
|
groupKey: string;
|
|
1365
1551
|
label: string;
|
|
@@ -1484,6 +1670,57 @@ export type CursorPageMessageView = {
|
|
|
1484
1670
|
nextCursor?: string;
|
|
1485
1671
|
hasNext?: boolean;
|
|
1486
1672
|
};
|
|
1673
|
+
export type ComposerLimits = {
|
|
1674
|
+
maxPhotos: number;
|
|
1675
|
+
/**
|
|
1676
|
+
* In Unicode code points: an emoji counts once, as [...text].length counts in JavaScript (text.length counts it twice)
|
|
1677
|
+
*/
|
|
1678
|
+
maxCaptionLength: number;
|
|
1679
|
+
};
|
|
1680
|
+
export type ComposerPhoto = {
|
|
1681
|
+
/**
|
|
1682
|
+
* What the publish request sends
|
|
1683
|
+
*/
|
|
1684
|
+
photoId: number;
|
|
1685
|
+
url: string;
|
|
1686
|
+
/**
|
|
1687
|
+
* As the photo is shown, in pixels
|
|
1688
|
+
*/
|
|
1689
|
+
width: number;
|
|
1690
|
+
/**
|
|
1691
|
+
* As the photo is shown, in pixels
|
|
1692
|
+
*/
|
|
1693
|
+
height: number;
|
|
1694
|
+
selectedByDefault: boolean;
|
|
1695
|
+
};
|
|
1696
|
+
export type ComposerPreview = {
|
|
1697
|
+
channel: 'FACEBOOK' | 'INSTAGRAM';
|
|
1698
|
+
/**
|
|
1699
|
+
* The built-in Georgian template filled in from the listing; a line with nothing to fill it is left out
|
|
1700
|
+
*/
|
|
1701
|
+
caption: string;
|
|
1702
|
+
/**
|
|
1703
|
+
* The template the text came from, sent back on publish; null for the built-in one
|
|
1704
|
+
*/
|
|
1705
|
+
templateId?: string;
|
|
1706
|
+
limits: ComposerLimits;
|
|
1707
|
+
/**
|
|
1708
|
+
* The shapes the agent can pick; empty on Facebook, which keeps each photo's own
|
|
1709
|
+
*/
|
|
1710
|
+
ratios: Array<'LANDSCAPE' | 'SQUARE' | 'PORTRAIT'>;
|
|
1711
|
+
/**
|
|
1712
|
+
* Instagram only
|
|
1713
|
+
*/
|
|
1714
|
+
defaultRatio?: 'LANDSCAPE' | 'SQUARE' | 'PORTRAIT';
|
|
1715
|
+
/**
|
|
1716
|
+
* The whole gallery, in gallery order
|
|
1717
|
+
*/
|
|
1718
|
+
photos: Array<ComposerPhoto>;
|
|
1719
|
+
/**
|
|
1720
|
+
* Whether the agency can post to the channel now; publishing refuses anything but ALLOWED
|
|
1721
|
+
*/
|
|
1722
|
+
access: 'ALLOWED' | 'NOT_CONNECTED' | 'RECONNECT_REQUIRED';
|
|
1723
|
+
};
|
|
1487
1724
|
export type ContactGridResponse = {
|
|
1488
1725
|
id: number;
|
|
1489
1726
|
createdBy?: string;
|
|
@@ -1524,7 +1761,7 @@ export type Client360Response = {
|
|
|
1524
1761
|
updatedAt: Date;
|
|
1525
1762
|
interests: Array<ContactInterestResponse>;
|
|
1526
1763
|
properties: Array<ContactPropertyResponse>;
|
|
1527
|
-
tasks:
|
|
1764
|
+
tasks: ContactTasksResponse;
|
|
1528
1765
|
};
|
|
1529
1766
|
export type CommunicationPreferenceResponse = {
|
|
1530
1767
|
preferredContactMethod?: 'WHATSAPP' | 'VIBER' | 'PHONE_CALL';
|
|
@@ -3462,6 +3699,41 @@ export type PostContactsByContactIdPropertiesByPropertyIdListingsResponses = {
|
|
|
3462
3699
|
201: IdResponseUuid;
|
|
3463
3700
|
};
|
|
3464
3701
|
export type PostContactsByContactIdPropertiesByPropertyIdListingsResponse = PostContactsByContactIdPropertiesByPropertyIdListingsResponses[keyof PostContactsByContactIdPropertiesByPropertyIdListingsResponses];
|
|
3702
|
+
export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsData = {
|
|
3703
|
+
body: PublishSocialPostRequest;
|
|
3704
|
+
path: {
|
|
3705
|
+
contactId: number;
|
|
3706
|
+
propertyId: number;
|
|
3707
|
+
listingId: number;
|
|
3708
|
+
};
|
|
3709
|
+
query?: never;
|
|
3710
|
+
url: '/contacts/{contactId}/properties/{propertyId}/listings/{listingId}/social-posts';
|
|
3711
|
+
};
|
|
3712
|
+
export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsResponses = {
|
|
3713
|
+
/**
|
|
3714
|
+
* Accepted
|
|
3715
|
+
*/
|
|
3716
|
+
202: SocialPostView;
|
|
3717
|
+
};
|
|
3718
|
+
export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsResponse = PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsResponses[keyof PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsResponses];
|
|
3719
|
+
export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdRetryData = {
|
|
3720
|
+
body?: never;
|
|
3721
|
+
path: {
|
|
3722
|
+
contactId: number;
|
|
3723
|
+
propertyId: number;
|
|
3724
|
+
listingId: number;
|
|
3725
|
+
postId: string;
|
|
3726
|
+
};
|
|
3727
|
+
query?: never;
|
|
3728
|
+
url: '/contacts/{contactId}/properties/{propertyId}/listings/{listingId}/social-posts/{postId}/retry';
|
|
3729
|
+
};
|
|
3730
|
+
export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdRetryResponses = {
|
|
3731
|
+
/**
|
|
3732
|
+
* Accepted
|
|
3733
|
+
*/
|
|
3734
|
+
202: SocialPostView;
|
|
3735
|
+
};
|
|
3736
|
+
export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdRetryResponse = PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdRetryResponses[keyof PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdRetryResponses];
|
|
3465
3737
|
export type PostContactsByContactIdPropertiesByPropertyIdListingsByListingIdResumeData = {
|
|
3466
3738
|
body?: never;
|
|
3467
3739
|
path: {
|
|
@@ -3712,6 +3984,21 @@ export type PostContactResponses = {
|
|
|
3712
3984
|
201: IdResponseLong;
|
|
3713
3985
|
};
|
|
3714
3986
|
export type PostContactResponse = PostContactResponses[keyof PostContactResponses];
|
|
3987
|
+
export type PostContactByContactIdPropertyByPropertyIdExternalListingWithdrawData = {
|
|
3988
|
+
body: ExternalListingWithdrawRequest;
|
|
3989
|
+
path: {
|
|
3990
|
+
contactId: number;
|
|
3991
|
+
propertyId: number;
|
|
3992
|
+
};
|
|
3993
|
+
query?: never;
|
|
3994
|
+
url: '/contact/{contactId}/property/{propertyId}/external-listing/withdraw';
|
|
3995
|
+
};
|
|
3996
|
+
export type PostContactByContactIdPropertyByPropertyIdExternalListingWithdrawResponses = {
|
|
3997
|
+
/**
|
|
3998
|
+
* OK
|
|
3999
|
+
*/
|
|
4000
|
+
200: unknown;
|
|
4001
|
+
};
|
|
3715
4002
|
export type PostContactByContactIdPropertyByPropertyIdExternalListingPublishData = {
|
|
3716
4003
|
body: ExternalListingPublishRequest;
|
|
3717
4004
|
path: {
|
|
@@ -3895,7 +4182,7 @@ export type GetTaskByContactByContactIdResponses = {
|
|
|
3895
4182
|
/**
|
|
3896
4183
|
* OK
|
|
3897
4184
|
*/
|
|
3898
|
-
200:
|
|
4185
|
+
200: ContactTasksResponse;
|
|
3899
4186
|
};
|
|
3900
4187
|
export type GetTaskByContactByContactIdResponse = GetTaskByContactByContactIdResponses[keyof GetTaskByContactByContactIdResponses];
|
|
3901
4188
|
export type GetTaskBoardByBoardIdData = {
|
|
@@ -4472,6 +4759,7 @@ export type GetListingData = {
|
|
|
4472
4759
|
platforms?: Array<'SS' | 'MY_HOME'>;
|
|
4473
4760
|
platformExpiresFrom?: Date;
|
|
4474
4761
|
platformExpiresTo?: Date;
|
|
4762
|
+
socialChannels?: Array<'FACEBOOK' | 'INSTAGRAM'>;
|
|
4475
4763
|
boostTiers?: Array<string>;
|
|
4476
4764
|
boostExpiresFrom?: Date;
|
|
4477
4765
|
boostExpiresTo?: Date;
|
|
@@ -4538,6 +4826,7 @@ export type GetListingGroupsData = {
|
|
|
4538
4826
|
platforms?: Array<'SS' | 'MY_HOME'>;
|
|
4539
4827
|
platformExpiresFrom?: Date;
|
|
4540
4828
|
platformExpiresTo?: Date;
|
|
4829
|
+
socialChannels?: Array<'FACEBOOK' | 'INSTAGRAM'>;
|
|
4541
4830
|
boostTiers?: Array<string>;
|
|
4542
4831
|
boostExpiresFrom?: Date;
|
|
4543
4832
|
boostExpiresTo?: Date;
|
|
@@ -4722,6 +5011,43 @@ export type GetConversationsByConversationIdUpdatesResponses = {
|
|
|
4722
5011
|
200: ThreadUpdates;
|
|
4723
5012
|
};
|
|
4724
5013
|
export type GetConversationsByConversationIdUpdatesResponse = GetConversationsByConversationIdUpdatesResponses[keyof GetConversationsByConversationIdUpdatesResponses];
|
|
5014
|
+
export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdData = {
|
|
5015
|
+
body?: never;
|
|
5016
|
+
path: {
|
|
5017
|
+
contactId: number;
|
|
5018
|
+
propertyId: number;
|
|
5019
|
+
listingId: number;
|
|
5020
|
+
postId: string;
|
|
5021
|
+
};
|
|
5022
|
+
query?: never;
|
|
5023
|
+
url: '/contacts/{contactId}/properties/{propertyId}/listings/{listingId}/social-posts/{postId}';
|
|
5024
|
+
};
|
|
5025
|
+
export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdResponses = {
|
|
5026
|
+
/**
|
|
5027
|
+
* OK
|
|
5028
|
+
*/
|
|
5029
|
+
200: SocialPostView;
|
|
5030
|
+
};
|
|
5031
|
+
export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdResponse = GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdResponses[keyof GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsByPostIdResponses];
|
|
5032
|
+
export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsPreviewData = {
|
|
5033
|
+
body?: never;
|
|
5034
|
+
path: {
|
|
5035
|
+
contactId: number;
|
|
5036
|
+
propertyId: number;
|
|
5037
|
+
listingId: number;
|
|
5038
|
+
};
|
|
5039
|
+
query: {
|
|
5040
|
+
channel: 'FACEBOOK' | 'INSTAGRAM';
|
|
5041
|
+
};
|
|
5042
|
+
url: '/contacts/{contactId}/properties/{propertyId}/listings/{listingId}/social-posts/preview';
|
|
5043
|
+
};
|
|
5044
|
+
export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsPreviewResponses = {
|
|
5045
|
+
/**
|
|
5046
|
+
* OK
|
|
5047
|
+
*/
|
|
5048
|
+
200: ComposerPreview;
|
|
5049
|
+
};
|
|
5050
|
+
export type GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsPreviewResponse = GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsPreviewResponses[keyof GetContactsByContactIdPropertiesByPropertyIdListingsByListingIdSocialPostsPreviewResponses];
|
|
4725
5051
|
export type GetContactsByContactIdInterestsByInterestIdRecommendationsDecisionsData = {
|
|
4726
5052
|
body?: never;
|
|
4727
5053
|
path: {
|
|
@@ -4842,6 +5168,22 @@ export type GetContactGroupsResponses = {
|
|
|
4842
5168
|
200: Array<GroupCount>;
|
|
4843
5169
|
};
|
|
4844
5170
|
export type GetContactGroupsResponse = GetContactGroupsResponses[keyof GetContactGroupsResponses];
|
|
5171
|
+
export type GetCommentsMentionsData = {
|
|
5172
|
+
body?: never;
|
|
5173
|
+
path?: never;
|
|
5174
|
+
query?: {
|
|
5175
|
+
cursor?: string;
|
|
5176
|
+
limit?: number;
|
|
5177
|
+
};
|
|
5178
|
+
url: '/comments/mentions';
|
|
5179
|
+
};
|
|
5180
|
+
export type GetCommentsMentionsResponses = {
|
|
5181
|
+
/**
|
|
5182
|
+
* OK
|
|
5183
|
+
*/
|
|
5184
|
+
200: CursorPageCommentView;
|
|
5185
|
+
};
|
|
5186
|
+
export type GetCommentsMentionsResponse = GetCommentsMentionsResponses[keyof GetCommentsMentionsResponses];
|
|
4845
5187
|
export type DeleteBoardByBoardIdData = {
|
|
4846
5188
|
body?: never;
|
|
4847
5189
|
path: {
|