@homespot-sdk/core 0.0.359 → 0.0.361

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.
@@ -183,7 +183,7 @@ export const CommentBodyRequestSchema = {
183
183
  properties: {
184
184
  body: {
185
185
  type: 'string',
186
- maxLength: 4000,
186
+ maxLength: 6300,
187
187
  minLength: 0,
188
188
  },
189
189
  },
@@ -1170,15 +1170,20 @@ export const OauthConnectionResponseSchema = {
1170
1170
  type: 'boolean',
1171
1171
  description: 'Like and comment counts on a post',
1172
1172
  },
1173
+ canReadInsights: {
1174
+ type: 'boolean',
1175
+ description: 'Views and reach of a post. Facebook reports them only for Pages with 100 or more likes',
1176
+ },
1173
1177
  reconnectRequired: {
1174
1178
  type: 'boolean',
1175
- description: 'The token is dead, or the grant lacks a scope the connect flow asks for — re-running the connect flow is what fixes it',
1179
+ description: 'The token is dead, or the grant lacks a scope the connect flow asks for (insights aside: without them canReadInsights is false and nothing else) — re-running the connect flow is what fixes it',
1176
1180
  },
1177
1181
  },
1178
1182
  required: [
1179
1183
  'agencyId',
1180
1184
  'canPublish',
1181
1185
  'canReadComments',
1186
+ 'canReadInsights',
1182
1187
  'canReadStats',
1183
1188
  'canReply',
1184
1189
  'createdAt',
@@ -1788,6 +1793,122 @@ export const SocialPostViewSchema = {
1788
1793
  'status',
1789
1794
  ],
1790
1795
  };
1796
+ export const MemberPeekResponseSchema = {
1797
+ type: 'object',
1798
+ properties: {
1799
+ memberId: {
1800
+ type: 'string',
1801
+ format: 'uuid',
1802
+ },
1803
+ firstName: {
1804
+ type: 'string',
1805
+ },
1806
+ lastName: {
1807
+ type: 'string',
1808
+ },
1809
+ photo: {
1810
+ type: 'string',
1811
+ },
1812
+ phone: {
1813
+ type: 'string',
1814
+ },
1815
+ email: {
1816
+ type: 'string',
1817
+ },
1818
+ },
1819
+ required: ['email', 'firstName', 'lastName', 'memberId'],
1820
+ };
1821
+ export const SocialCommentAuthorSchema = {
1822
+ type: 'object',
1823
+ properties: {
1824
+ name: {
1825
+ type: 'string',
1826
+ },
1827
+ username: {
1828
+ type: 'string',
1829
+ },
1830
+ },
1831
+ };
1832
+ export const SocialCommentResponseSchema = {
1833
+ type: 'object',
1834
+ properties: {
1835
+ commentId: {
1836
+ type: 'string',
1837
+ format: 'uuid',
1838
+ },
1839
+ author: {
1840
+ $ref: '#/components/schemas/SocialCommentAuthor',
1841
+ description: "Who wrote it, as far as Facebook / Instagram say; null on the agency's own comments, and when Meta does not say",
1842
+ },
1843
+ text: {
1844
+ type: 'string',
1845
+ description: 'Null on a sticker or a photo on its own, and once the comment is REMOVED',
1846
+ },
1847
+ commentedAt: {
1848
+ type: 'string',
1849
+ format: 'date-time',
1850
+ description: 'When it was written; for a reply sent from HomeSpot, when it was sent',
1851
+ },
1852
+ state: {
1853
+ type: 'string',
1854
+ enum: ['VISIBLE', 'HIDDEN', 'REMOVED'],
1855
+ },
1856
+ edited: {
1857
+ type: 'boolean',
1858
+ description: 'Changed by its author after it was written',
1859
+ },
1860
+ own: {
1861
+ type: 'boolean',
1862
+ description: "Written by the agency: shown as the agency's reply",
1863
+ },
1864
+ sentBy: {
1865
+ $ref: '#/components/schemas/SocialCommentSender',
1866
+ description: 'Own comments only',
1867
+ },
1868
+ delivery: {
1869
+ type: 'string',
1870
+ description: 'Own comments only: PENDING while HomeSpot gets it onto Facebook / Instagram, SENT once there, FAILED if Meta refused it',
1871
+ enum: ['PENDING', 'SENT', 'FAILED'],
1872
+ },
1873
+ failureReason: {
1874
+ type: 'string',
1875
+ description: 'Why it FAILED; retrying sends it again as it is',
1876
+ enum: [
1877
+ 'COMMENT_DELETED',
1878
+ 'RECONNECT_REQUIRED',
1879
+ 'PERMISSION_MISSING',
1880
+ 'RATE_LIMITED',
1881
+ 'UNKNOWN',
1882
+ ],
1883
+ },
1884
+ },
1885
+ required: ['commentId', 'commentedAt', 'edited', 'own', 'state'],
1886
+ };
1887
+ export const SocialCommentSenderSchema = {
1888
+ type: 'object',
1889
+ properties: {
1890
+ type: {
1891
+ type: 'string',
1892
+ enum: ['AGENT', 'AI', 'PAGE'],
1893
+ },
1894
+ member: {
1895
+ $ref: '#/components/schemas/MemberPeekResponse',
1896
+ description: 'AGENT only; also once they have left the agency',
1897
+ },
1898
+ },
1899
+ required: ['type'],
1900
+ };
1901
+ export const ReplyToSocialCommentRequestSchema = {
1902
+ type: 'object',
1903
+ properties: {
1904
+ text: {
1905
+ type: 'string',
1906
+ description: "Posted exactly as written; how long it may be is the channel's rule",
1907
+ minLength: 1,
1908
+ },
1909
+ },
1910
+ required: ['text'],
1911
+ };
1791
1912
  export const CloseListingRequestSchema = {
1792
1913
  type: 'object',
1793
1914
  properties: {
@@ -2222,6 +2343,18 @@ export const CommentViewSchema = {
2222
2343
  body: {
2223
2344
  type: 'string',
2224
2345
  },
2346
+ mentionedMembers: {
2347
+ type: 'array',
2348
+ items: {
2349
+ $ref: '#/components/schemas/MemberPeekResponse',
2350
+ },
2351
+ },
2352
+ mentionedContacts: {
2353
+ type: 'array',
2354
+ items: {
2355
+ $ref: '#/components/schemas/ContactMentionView',
2356
+ },
2357
+ },
2225
2358
  createdAt: {
2226
2359
  type: 'string',
2227
2360
  format: 'date-time',
@@ -2238,35 +2371,17 @@ export const CommentViewSchema = {
2238
2371
  'body',
2239
2372
  'createdAt',
2240
2373
  'id',
2374
+ 'mentionedContacts',
2375
+ 'mentionedMembers',
2241
2376
  ],
2242
2377
  };
2243
- export const CursorPageCommentViewSchema = {
2244
- type: 'object',
2245
- properties: {
2246
- items: {
2247
- type: 'array',
2248
- items: {
2249
- $ref: '#/components/schemas/CommentView',
2250
- },
2251
- },
2252
- nextCursor: {
2253
- type: 'string',
2254
- },
2255
- hasNext: {
2256
- type: 'boolean',
2257
- },
2258
- },
2259
- };
2260
- export const ContactLinkSchema = {
2378
+ export const ContactMentionViewSchema = {
2261
2379
  type: 'object',
2262
2380
  properties: {
2263
2381
  contactId: {
2264
2382
  type: 'integer',
2265
2383
  format: 'int64',
2266
2384
  },
2267
- primary: {
2268
- type: 'boolean',
2269
- },
2270
2385
  personalDetails: {
2271
2386
  oneOf: [
2272
2387
  {
@@ -2282,7 +2397,7 @@ export const ContactLinkSchema = {
2282
2397
  format: 'uuid',
2283
2398
  },
2284
2399
  },
2285
- required: ['contactId', 'personalDetails', 'primary'],
2400
+ required: ['contactId', 'personalDetails'],
2286
2401
  };
2287
2402
  export const ContactPersonalDetailsSchema = {
2288
2403
  discriminator: {
@@ -2342,6 +2457,50 @@ export const ContactPersonalDetailsVisibleSchema = {
2342
2457
  },
2343
2458
  required: ['status'],
2344
2459
  };
2460
+ export const CursorPageCommentViewSchema = {
2461
+ type: 'object',
2462
+ properties: {
2463
+ items: {
2464
+ type: 'array',
2465
+ items: {
2466
+ $ref: '#/components/schemas/CommentView',
2467
+ },
2468
+ },
2469
+ nextCursor: {
2470
+ type: 'string',
2471
+ },
2472
+ hasNext: {
2473
+ type: 'boolean',
2474
+ },
2475
+ },
2476
+ };
2477
+ export const ContactLinkSchema = {
2478
+ type: 'object',
2479
+ properties: {
2480
+ contactId: {
2481
+ type: 'integer',
2482
+ format: 'int64',
2483
+ },
2484
+ primary: {
2485
+ type: 'boolean',
2486
+ },
2487
+ personalDetails: {
2488
+ oneOf: [
2489
+ {
2490
+ $ref: '#/components/schemas/ContactPersonalDetailsRestricted',
2491
+ },
2492
+ {
2493
+ $ref: '#/components/schemas/ContactPersonalDetailsVisible',
2494
+ },
2495
+ ],
2496
+ },
2497
+ contactAssignedTo: {
2498
+ type: 'string',
2499
+ format: 'uuid',
2500
+ },
2501
+ },
2502
+ required: ['contactId', 'personalDetails', 'primary'],
2503
+ };
2345
2504
  export const InterestLinkSchema = {
2346
2505
  type: 'object',
2347
2506
  properties: {
@@ -2439,31 +2598,6 @@ export const LocationResponseSchema = {
2439
2598
  },
2440
2599
  required: ['id', 'names'],
2441
2600
  };
2442
- export const MemberPeekResponseSchema = {
2443
- type: 'object',
2444
- properties: {
2445
- memberId: {
2446
- type: 'string',
2447
- format: 'uuid',
2448
- },
2449
- firstName: {
2450
- type: 'string',
2451
- },
2452
- lastName: {
2453
- type: 'string',
2454
- },
2455
- photo: {
2456
- type: 'string',
2457
- },
2458
- phone: {
2459
- type: 'string',
2460
- },
2461
- email: {
2462
- type: 'string',
2463
- },
2464
- },
2465
- required: ['email', 'firstName', 'lastName', 'memberId'],
2466
- };
2467
2601
  export const ParticipantSchema = {
2468
2602
  type: 'object',
2469
2603
  properties: {
@@ -2778,134 +2912,188 @@ export const TodoItemSchema = {
2778
2912
  },
2779
2913
  required: ['fromTemplate', 'position', 'title', 'todoId'],
2780
2914
  };
2781
- export const ContactTaskResponseSchema = {
2915
+ export const ContactTaskCardResponseSchema = {
2782
2916
  type: 'object',
2783
2917
  properties: {
2784
2918
  taskId: {
2785
2919
  type: 'string',
2786
2920
  format: 'uuid',
2787
2921
  },
2788
- title: {
2789
- type: 'string',
2790
- },
2791
- boardId: {
2922
+ stageId: {
2792
2923
  type: 'string',
2793
2924
  format: 'uuid',
2794
2925
  },
2795
- boardName: {
2926
+ stageName: {
2796
2927
  type: 'string',
2797
2928
  },
2798
- stageId: {
2929
+ title: {
2799
2930
  type: 'string',
2800
- format: 'uuid',
2801
2931
  },
2802
- stageName: {
2803
- type: 'string',
2932
+ hasDescription: {
2933
+ type: 'boolean',
2804
2934
  },
2805
- outcome: {
2935
+ commentCount: {
2936
+ type: 'integer',
2937
+ format: 'int32',
2938
+ },
2939
+ contactCount: {
2940
+ type: 'integer',
2941
+ format: 'int32',
2942
+ },
2943
+ priority: {
2806
2944
  type: 'string',
2807
- enum: ['WON', 'LOST'],
2945
+ enum: ['LOW', 'MEDIUM', 'HIGH', 'CRITICAL'],
2808
2946
  },
2809
2947
  value: {
2810
2948
  type: 'number',
2811
2949
  },
2812
- primary: {
2813
- type: 'boolean',
2950
+ commissionType: {
2951
+ type: 'string',
2952
+ enum: ['NOT_SET', 'FIXED', 'PERCENTAGE', 'MONTHS_OF_RENT'],
2814
2953
  },
2815
- },
2816
- required: [
2817
- 'boardId',
2818
- 'boardName',
2819
- 'primary',
2820
- 'stageId',
2821
- 'stageName',
2822
- 'taskId',
2823
- 'title',
2824
- ],
2825
- };
2826
- export const BoardCardsResponseSchema = {
2827
- type: 'object',
2828
- properties: {
2829
- boardId: {
2954
+ commissionValue: {
2955
+ type: 'number',
2956
+ },
2957
+ ownerId: {
2830
2958
  type: 'string',
2831
2959
  format: 'uuid',
2832
2960
  },
2833
- name: {
2834
- type: 'string',
2961
+ primaryContactId: {
2962
+ type: 'integer',
2963
+ format: 'int64',
2835
2964
  },
2836
- kind: {
2965
+ primaryContact: {
2966
+ oneOf: [
2967
+ {
2968
+ $ref: '#/components/schemas/ContactPersonalDetailsRestricted',
2969
+ },
2970
+ {
2971
+ $ref: '#/components/schemas/ContactPersonalDetailsVisible',
2972
+ },
2973
+ ],
2974
+ },
2975
+ contactAssignedTo: {
2837
2976
  type: 'string',
2838
- enum: ['OWNER', 'SEEKER'],
2977
+ format: 'uuid',
2839
2978
  },
2840
- members: {
2841
- type: 'array',
2842
- items: {
2843
- $ref: '#/components/schemas/MemberPeekResponse',
2844
- },
2979
+ primaryContent: {
2980
+ oneOf: [
2981
+ {
2982
+ $ref: '#/components/schemas/TaskContentInterest',
2983
+ },
2984
+ {
2985
+ $ref: '#/components/schemas/TaskContentProperty',
2986
+ },
2987
+ ],
2845
2988
  },
2846
- columns: {
2989
+ participants: {
2847
2990
  type: 'array',
2848
2991
  items: {
2849
- $ref: '#/components/schemas/Column',
2992
+ type: 'string',
2993
+ format: 'uuid',
2850
2994
  },
2851
2995
  },
2852
- },
2853
- required: ['boardId', 'columns', 'members', 'name'],
2854
- };
2855
- export const ColumnSchema = {
2856
- type: 'object',
2857
- properties: {
2858
- stageId: {
2996
+ rank: {
2859
2997
  type: 'string',
2860
- format: 'uuid',
2861
2998
  },
2862
- name: {
2999
+ stageEnteredAt: {
2863
3000
  type: 'string',
3001
+ format: 'date-time',
2864
3002
  },
2865
- color: {
2866
- type: 'string',
3003
+ daysInStage: {
3004
+ type: 'integer',
3005
+ format: 'int64',
2867
3006
  },
2868
- position: {
3007
+ openTodos: {
2869
3008
  type: 'integer',
2870
- format: 'int32',
3009
+ format: 'int64',
2871
3010
  },
2872
- totalTasks: {
3011
+ totalTodos: {
2873
3012
  type: 'integer',
2874
3013
  format: 'int64',
2875
3014
  },
2876
- totalValue: {
2877
- type: 'number',
3015
+ hasLeftoverOpenTodos: {
3016
+ type: 'boolean',
2878
3017
  },
2879
- cards: {
2880
- $ref: '#/components/schemas/CursorPageTaskCardResponse',
3018
+ expectedCloseDate: {
3019
+ type: 'string',
3020
+ format: 'date',
3021
+ },
3022
+ outcome: {
3023
+ type: 'string',
3024
+ enum: ['WON', 'LOST'],
3025
+ },
3026
+ lostReason: {
3027
+ type: 'string',
3028
+ enum: [
3029
+ 'NOT_WORKING_WITH_AGENTS',
3030
+ 'NOT_RESPONDING',
3031
+ 'ALREADY_SOLD',
3032
+ 'COULD_NOT_NEGOTIATE_PRICE',
3033
+ 'CHOSE_ANOTHER_AGENCY',
3034
+ 'CHANGED_PLANS',
3035
+ 'OUT_OF_BUDGET',
3036
+ 'SPAM',
3037
+ 'OTHER',
3038
+ ],
3039
+ },
3040
+ closedAt: {
3041
+ type: 'string',
3042
+ format: 'date-time',
3043
+ },
3044
+ boardId: {
3045
+ type: 'string',
3046
+ format: 'uuid',
3047
+ },
3048
+ boardName: {
3049
+ type: 'string',
3050
+ },
3051
+ stageColor: {
3052
+ type: 'string',
3053
+ },
3054
+ primary: {
3055
+ type: 'boolean',
2881
3056
  },
2882
3057
  },
2883
3058
  required: [
2884
- 'cards',
2885
- 'color',
2886
- 'name',
2887
- 'position',
3059
+ 'boardId',
3060
+ 'boardName',
3061
+ 'commentCount',
3062
+ 'contactCount',
3063
+ 'daysInStage',
3064
+ 'hasDescription',
3065
+ 'hasLeftoverOpenTodos',
3066
+ 'openTodos',
3067
+ 'participants',
3068
+ 'primary',
3069
+ 'priority',
3070
+ 'rank',
3071
+ 'stageColor',
3072
+ 'stageEnteredAt',
2888
3073
  'stageId',
2889
- 'totalTasks',
2890
- 'totalValue',
3074
+ 'stageName',
3075
+ 'taskId',
3076
+ 'title',
3077
+ 'totalTodos',
2891
3078
  ],
2892
3079
  };
2893
- export const CursorPageTaskCardResponseSchema = {
3080
+ export const ContactTasksResponseSchema = {
2894
3081
  type: 'object',
2895
3082
  properties: {
2896
- items: {
3083
+ members: {
2897
3084
  type: 'array',
2898
3085
  items: {
2899
- $ref: '#/components/schemas/TaskCardResponse',
3086
+ $ref: '#/components/schemas/MemberPeekResponse',
2900
3087
  },
2901
3088
  },
2902
- nextCursor: {
2903
- type: 'string',
2904
- },
2905
- hasNext: {
2906
- type: 'boolean',
3089
+ items: {
3090
+ type: 'array',
3091
+ items: {
3092
+ $ref: '#/components/schemas/ContactTaskCardResponse',
3093
+ },
2907
3094
  },
2908
3095
  },
3096
+ required: ['items', 'members'],
2909
3097
  };
2910
3098
  export const TaskCardResponseSchema = {
2911
3099
  type: 'object',
@@ -3170,6 +3358,90 @@ export const TaskContentPropertySchema = {
3170
3358
  ],
3171
3359
  required: ['id', 'type'],
3172
3360
  };
3361
+ export const BoardCardsResponseSchema = {
3362
+ type: 'object',
3363
+ properties: {
3364
+ boardId: {
3365
+ type: 'string',
3366
+ format: 'uuid',
3367
+ },
3368
+ name: {
3369
+ type: 'string',
3370
+ },
3371
+ kind: {
3372
+ type: 'string',
3373
+ enum: ['OWNER', 'SEEKER'],
3374
+ },
3375
+ members: {
3376
+ type: 'array',
3377
+ items: {
3378
+ $ref: '#/components/schemas/MemberPeekResponse',
3379
+ },
3380
+ },
3381
+ columns: {
3382
+ type: 'array',
3383
+ items: {
3384
+ $ref: '#/components/schemas/Column',
3385
+ },
3386
+ },
3387
+ },
3388
+ required: ['boardId', 'columns', 'members', 'name'],
3389
+ };
3390
+ export const ColumnSchema = {
3391
+ type: 'object',
3392
+ properties: {
3393
+ stageId: {
3394
+ type: 'string',
3395
+ format: 'uuid',
3396
+ },
3397
+ name: {
3398
+ type: 'string',
3399
+ },
3400
+ color: {
3401
+ type: 'string',
3402
+ },
3403
+ position: {
3404
+ type: 'integer',
3405
+ format: 'int32',
3406
+ },
3407
+ totalTasks: {
3408
+ type: 'integer',
3409
+ format: 'int64',
3410
+ },
3411
+ totalValue: {
3412
+ type: 'number',
3413
+ },
3414
+ cards: {
3415
+ $ref: '#/components/schemas/CursorPageTaskCardResponse',
3416
+ },
3417
+ },
3418
+ required: [
3419
+ 'cards',
3420
+ 'color',
3421
+ 'name',
3422
+ 'position',
3423
+ 'stageId',
3424
+ 'totalTasks',
3425
+ 'totalValue',
3426
+ ],
3427
+ };
3428
+ export const CursorPageTaskCardResponseSchema = {
3429
+ type: 'object',
3430
+ properties: {
3431
+ items: {
3432
+ type: 'array',
3433
+ items: {
3434
+ $ref: '#/components/schemas/TaskCardResponse',
3435
+ },
3436
+ },
3437
+ nextCursor: {
3438
+ type: 'string',
3439
+ },
3440
+ hasNext: {
3441
+ type: 'boolean',
3442
+ },
3443
+ },
3444
+ };
3173
3445
  export const StageCardsResponseSchema = {
3174
3446
  type: 'object',
3175
3447
  properties: {
@@ -4621,6 +4893,11 @@ export const PropertyListingResponseSchema = {
4621
4893
  $ref: '#/components/schemas/SocialPostResponse',
4622
4894
  },
4623
4895
  },
4896
+ unansweredComments: {
4897
+ type: 'integer',
4898
+ format: 'int32',
4899
+ description: "Comment threads waiting for an answer from the agency, across the listing's posts",
4900
+ },
4624
4901
  createdAt: {
4625
4902
  type: 'string',
4626
4903
  format: 'date-time',
@@ -4641,6 +4918,7 @@ export const PropertyListingResponseSchema = {
4641
4918
  'price',
4642
4919
  'publicId',
4643
4920
  'socialPosts',
4921
+ 'unansweredComments',
4644
4922
  ],
4645
4923
  };
4646
4924
  export const PropertyPageResponseSchema = {
@@ -4780,10 +5058,22 @@ export const SocialPostResponseSchema = {
4780
5058
  },
4781
5059
  stats: {
4782
5060
  $ref: '#/components/schemas/SocialPostStats',
4783
- description: "The post's public counts as last read from Facebook / Instagram; null until the first read",
5061
+ description: "The post's numbers as last read from Facebook / Instagram; null until the first read",
5062
+ },
5063
+ unansweredComments: {
5064
+ type: 'integer',
5065
+ format: 'int32',
5066
+ description: 'Comment threads under the post waiting for an answer from the agency; 0 unless PUBLISHED',
4784
5067
  },
4785
5068
  },
4786
- required: ['caption', 'channel', 'createdBy', 'postId', 'status'],
5069
+ required: [
5070
+ 'caption',
5071
+ 'channel',
5072
+ 'createdBy',
5073
+ 'postId',
5074
+ 'status',
5075
+ 'unansweredComments',
5076
+ ],
4787
5077
  };
4788
5078
  export const SocialPostStatsSchema = {
4789
5079
  type: 'object',
@@ -4791,22 +5081,34 @@ export const SocialPostStatsSchema = {
4791
5081
  likes: {
4792
5082
  type: 'integer',
4793
5083
  format: 'int32',
5084
+ description: 'On Facebook all reactions, as Facebook shows them under the post',
4794
5085
  },
4795
5086
  comments: {
4796
5087
  type: 'integer',
4797
5088
  format: 'int32',
5089
+ description: 'Replies included',
4798
5090
  },
4799
5091
  shares: {
4800
5092
  type: 'integer',
4801
5093
  format: 'int32',
4802
5094
  },
5095
+ views: {
5096
+ type: 'integer',
5097
+ format: 'int32',
5098
+ description: 'How many times the post was seen',
5099
+ },
5100
+ reach: {
5101
+ type: 'integer',
5102
+ format: 'int32',
5103
+ description: 'How many people saw the post',
5104
+ },
4803
5105
  fetchedAt: {
4804
5106
  type: 'string',
4805
5107
  format: 'date-time',
4806
- description: 'When the counts were read — show how old they are',
5108
+ description: "When the numbers were read — show how old they are. Likes and comments are read every 15 minutes on the post's first day, then less often; Meta updates views and reach about once a day",
4807
5109
  },
4808
5110
  },
4809
- required: ['comments', 'fetchedAt', 'likes', 'shares'],
5111
+ required: ['fetchedAt'],
4810
5112
  };
4811
5113
  export const ListingOwnerContactResponseSchema = {
4812
5114
  type: 'object',
@@ -4990,6 +5292,33 @@ export const MemberIdSchema = {
4990
5292
  },
4991
5293
  },
4992
5294
  };
5295
+ export const MemberMentionedSchema = {
5296
+ properties: {
5297
+ commentId: {
5298
+ $ref: '#/components/schemas/CommentId',
5299
+ },
5300
+ contactId: {
5301
+ $ref: '#/components/schemas/ContactId',
5302
+ },
5303
+ taskId: {
5304
+ $ref: '#/components/schemas/TaskId',
5305
+ },
5306
+ authorId: {
5307
+ $ref: '#/components/schemas/MemberId',
5308
+ },
5309
+ author: {
5310
+ type: 'string',
5311
+ },
5312
+ commentSnippet: {
5313
+ type: 'string',
5314
+ },
5315
+ kind: {
5316
+ type: 'string',
5317
+ enum: ['MEMBER_MENTIONED'],
5318
+ },
5319
+ },
5320
+ required: ['kind'],
5321
+ };
4993
5322
  export const NewMessageSchema = {
4994
5323
  properties: {
4995
5324
  contactId: {
@@ -5052,6 +5381,7 @@ export const NotificationContentSchema = {
5052
5381
  mapping: {
5053
5382
  AGENT_COMMENTED: '#/components/schemas/AgentCommented',
5054
5383
  TASK_COMMENTED: '#/components/schemas/TaskCommented',
5384
+ MEMBER_MENTIONED: '#/components/schemas/MemberMentioned',
5055
5385
  LISTING_EXPIRED: '#/components/schemas/ListingExpired',
5056
5386
  NEW_SEEKER_RATING: '#/components/schemas/NewSeekerRating',
5057
5387
  NEW_MESSAGE: '#/components/schemas/NewMessage',
@@ -5062,6 +5392,7 @@ export const NotificationContentSchema = {
5062
5392
  SUBSCRIPTION_PAYMENT_REVERSED: '#/components/schemas/SubscriptionPaymentReversed',
5063
5393
  CHANNEL_REAUTH_REQUIRED: '#/components/schemas/ChannelReauthRequired',
5064
5394
  SOCIAL_POST_FAILED: '#/components/schemas/SocialPostFailed',
5395
+ SOCIAL_POST_COMMENTED: '#/components/schemas/SocialPostCommented',
5065
5396
  },
5066
5397
  },
5067
5398
  required: ['kind'],
@@ -5095,6 +5426,7 @@ export const NotificationViewSchema = {
5095
5426
  enum: [
5096
5427
  'AGENT_COMMENTED',
5097
5428
  'TASK_COMMENTED',
5429
+ 'MEMBER_MENTIONED',
5098
5430
  'EXTERNAL_LISTING_EXPIRED',
5099
5431
  'LISTING_EXPIRED',
5100
5432
  'NEW_SEEKER_RATING',
@@ -5106,6 +5438,7 @@ export const NotificationViewSchema = {
5106
5438
  'SUBSCRIPTION_PAYMENT_REVERSED',
5107
5439
  'CHANNEL_REAUTH_REQUIRED',
5108
5440
  'SOCIAL_POST_FAILED',
5441
+ 'SOCIAL_POST_COMMENTED',
5109
5442
  ],
5110
5443
  },
5111
5444
  targetId: {
@@ -5125,12 +5458,18 @@ export const NotificationViewSchema = {
5125
5458
  {
5126
5459
  $ref: '#/components/schemas/ListingExpired',
5127
5460
  },
5461
+ {
5462
+ $ref: '#/components/schemas/MemberMentioned',
5463
+ },
5128
5464
  {
5129
5465
  $ref: '#/components/schemas/NewMessage',
5130
5466
  },
5131
5467
  {
5132
5468
  $ref: '#/components/schemas/NewSeekerRating',
5133
5469
  },
5470
+ {
5471
+ $ref: '#/components/schemas/SocialPostCommented',
5472
+ },
5134
5473
  {
5135
5474
  $ref: '#/components/schemas/SocialPostFailed',
5136
5475
  },
@@ -5151,6 +5490,11 @@ export const NotificationViewSchema = {
5151
5490
  },
5152
5491
  ],
5153
5492
  },
5493
+ count: {
5494
+ type: 'integer',
5495
+ format: 'int32',
5496
+ description: 'How many times this came while unread; the payload is the latest. For SOCIAL_POST_COMMENTED: the new comments on the post since its notification was last read. Starts again at 1 once read',
5497
+ },
5154
5498
  createdAt: {
5155
5499
  type: 'string',
5156
5500
  format: 'date-time',
@@ -5159,7 +5503,7 @@ export const NotificationViewSchema = {
5159
5503
  type: 'boolean',
5160
5504
  },
5161
5505
  },
5162
- required: ['createdAt', 'id', 'payload', 'read', 'seq', 'type'],
5506
+ required: ['count', 'createdAt', 'id', 'payload', 'read', 'seq', 'type'],
5163
5507
  };
5164
5508
  export const PropertyIdSchema = {
5165
5509
  type: 'object',
@@ -5170,6 +5514,53 @@ export const PropertyIdSchema = {
5170
5514
  },
5171
5515
  },
5172
5516
  };
5517
+ export const SocialCommentIdSchema = {
5518
+ type: 'object',
5519
+ properties: {
5520
+ value: {
5521
+ type: 'string',
5522
+ format: 'uuid',
5523
+ },
5524
+ },
5525
+ };
5526
+ export const SocialPostCommentedSchema = {
5527
+ properties: {
5528
+ postId: {
5529
+ $ref: '#/components/schemas/SocialPostId',
5530
+ },
5531
+ commentId: {
5532
+ $ref: '#/components/schemas/SocialCommentId',
5533
+ },
5534
+ contactId: {
5535
+ $ref: '#/components/schemas/ContactId',
5536
+ },
5537
+ propertyId: {
5538
+ $ref: '#/components/schemas/PropertyId',
5539
+ },
5540
+ listingId: {
5541
+ type: 'integer',
5542
+ format: 'int64',
5543
+ },
5544
+ propertyTitle: {
5545
+ type: 'string',
5546
+ },
5547
+ channel: {
5548
+ type: 'string',
5549
+ enum: ['FACEBOOK', 'INSTAGRAM'],
5550
+ },
5551
+ author: {
5552
+ type: 'string',
5553
+ },
5554
+ commentSnippet: {
5555
+ type: 'string',
5556
+ },
5557
+ kind: {
5558
+ type: 'string',
5559
+ enum: ['SOCIAL_POST_COMMENTED'],
5560
+ },
5561
+ },
5562
+ required: ['kind'],
5563
+ };
5173
5564
  export const SocialPostFailedSchema = {
5174
5565
  properties: {
5175
5566
  postId: {
@@ -6385,6 +6776,74 @@ export const ComposerPreviewSchema = {
6385
6776
  },
6386
6777
  required: ['access', 'caption', 'channel', 'limits', 'photos', 'ratios'],
6387
6778
  };
6779
+ export const CursorPageSocialCommentThreadResponseSchema = {
6780
+ type: 'object',
6781
+ properties: {
6782
+ items: {
6783
+ type: 'array',
6784
+ items: {
6785
+ $ref: '#/components/schemas/SocialCommentThreadResponse',
6786
+ },
6787
+ },
6788
+ nextCursor: {
6789
+ type: 'string',
6790
+ },
6791
+ hasNext: {
6792
+ type: 'boolean',
6793
+ },
6794
+ },
6795
+ };
6796
+ export const SocialCommentPostSchema = {
6797
+ type: 'object',
6798
+ properties: {
6799
+ postId: {
6800
+ type: 'string',
6801
+ format: 'uuid',
6802
+ },
6803
+ channel: {
6804
+ type: 'string',
6805
+ enum: ['FACEBOOK', 'INSTAGRAM'],
6806
+ },
6807
+ status: {
6808
+ type: 'string',
6809
+ description: 'PUBLISHED, or REMOVED once gone from Facebook / Instagram: its comments stay, and can no longer be answered',
6810
+ enum: ['PUBLISHING', 'PUBLISHED', 'FAILED', 'REMOVED'],
6811
+ },
6812
+ permalink: {
6813
+ type: 'string',
6814
+ },
6815
+ publishedAt: {
6816
+ type: 'string',
6817
+ format: 'date-time',
6818
+ },
6819
+ },
6820
+ required: ['channel', 'permalink', 'postId', 'publishedAt', 'status'],
6821
+ };
6822
+ export const SocialCommentThreadResponseSchema = {
6823
+ type: 'object',
6824
+ properties: {
6825
+ post: {
6826
+ $ref: '#/components/schemas/SocialCommentPost',
6827
+ description: 'The post the thread is under',
6828
+ },
6829
+ comment: {
6830
+ $ref: '#/components/schemas/SocialCommentResponse',
6831
+ description: 'The comment that started the thread',
6832
+ },
6833
+ replies: {
6834
+ type: 'array',
6835
+ description: 'Oldest first, one level deep as Facebook and Instagram show it: a reply to a reply is listed here too',
6836
+ items: {
6837
+ $ref: '#/components/schemas/SocialCommentResponse',
6838
+ },
6839
+ },
6840
+ answered: {
6841
+ type: 'boolean',
6842
+ description: "False while the thread's latest comment from someone else has no reply from the agency after it. Hidden and removed comments need no answer, and a FAILED reply is none",
6843
+ },
6844
+ },
6845
+ required: ['answered', 'comment', 'post', 'replies'],
6846
+ };
6388
6847
  export const ContactGridResponseSchema = {
6389
6848
  type: 'object',
6390
6849
  properties: {
@@ -6557,10 +7016,7 @@ export const Client360ResponseSchema = {
6557
7016
  },
6558
7017
  },
6559
7018
  tasks: {
6560
- type: 'array',
6561
- items: {
6562
- $ref: '#/components/schemas/ContactTaskResponse',
6563
- },
7019
+ $ref: '#/components/schemas/ContactTasksResponse',
6564
7020
  },
6565
7021
  },
6566
7022
  required: [