@homespot-sdk/core 0.0.358 → 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.
Files changed (63) hide show
  1. package/dist/property/index.d.ts +2 -2
  2. package/dist/property/index.d.ts.map +1 -1
  3. package/dist/property/index.js +1 -1
  4. package/dist/property/index.js.map +1 -1
  5. package/dist/property/schemas.gen.d.ts +92 -0
  6. package/dist/property/schemas.gen.d.ts.map +1 -1
  7. package/dist/property/schemas.gen.js +99 -0
  8. package/dist/property/schemas.gen.js.map +1 -1
  9. package/dist/property/sdk.gen.d.ts +6 -2
  10. package/dist/property/sdk.gen.d.ts.map +1 -1
  11. package/dist/property/sdk.gen.js +34 -2
  12. package/dist/property/sdk.gen.js.map +1 -1
  13. package/dist/property/transformers.gen.d.ts +5 -1
  14. package/dist/property/transformers.gen.d.ts.map +1 -1
  15. package/dist/property/transformers.gen.js +40 -0
  16. package/dist/property/transformers.gen.js.map +1 -1
  17. package/dist/property/types.gen.d.ts +86 -0
  18. package/dist/property/types.gen.d.ts.map +1 -1
  19. package/dist/property/zod.gen.d.ts +271 -6
  20. package/dist/property/zod.gen.d.ts.map +1 -1
  21. package/dist/property/zod.gen.js +98 -0
  22. package/dist/property/zod.gen.js.map +1 -1
  23. package/dist/rem/index.d.ts +2 -2
  24. package/dist/rem/index.d.ts.map +1 -1
  25. package/dist/rem/index.js +1 -1
  26. package/dist/rem/index.js.map +1 -1
  27. package/dist/rem/schemas.gen.d.ts +453 -6
  28. package/dist/rem/schemas.gen.d.ts.map +1 -1
  29. package/dist/rem/schemas.gen.js +499 -2
  30. package/dist/rem/schemas.gen.js.map +1 -1
  31. package/dist/rem/sdk.gen.d.ts +7 -2
  32. package/dist/rem/sdk.gen.d.ts.map +1 -1
  33. package/dist/rem/sdk.gen.js +38 -2
  34. package/dist/rem/sdk.gen.js.map +1 -1
  35. package/dist/rem/transformers.gen.d.ts +4 -1
  36. package/dist/rem/transformers.gen.d.ts.map +1 -1
  37. package/dist/rem/transformers.gen.js +33 -0
  38. package/dist/rem/transformers.gen.js.map +1 -1
  39. package/dist/rem/types.gen.d.ts +288 -4
  40. package/dist/rem/types.gen.d.ts.map +1 -1
  41. package/dist/rem/zod.gen.d.ts +961 -74
  42. package/dist/rem/zod.gen.d.ts.map +1 -1
  43. package/dist/rem/zod.gen.js +401 -1
  44. package/dist/rem/zod.gen.js.map +1 -1
  45. package/dist/utils/index.d.ts +2 -2
  46. package/dist/utils/index.d.ts.map +1 -1
  47. package/dist/utils/index.js +1 -1
  48. package/dist/utils/index.js.map +1 -1
  49. package/dist/utils/schemas.gen.d.ts +72 -0
  50. package/dist/utils/schemas.gen.d.ts.map +1 -1
  51. package/dist/utils/schemas.gen.js +72 -0
  52. package/dist/utils/schemas.gen.js.map +1 -1
  53. package/dist/utils/sdk.gen.d.ts +10 -1
  54. package/dist/utils/sdk.gen.d.ts.map +1 -1
  55. package/dist/utils/sdk.gen.js +9 -0
  56. package/dist/utils/sdk.gen.js.map +1 -1
  57. package/dist/utils/types.gen.d.ts +73 -0
  58. package/dist/utils/types.gen.d.ts.map +1 -1
  59. package/dist/utils/zod.gen.d.ts +157 -0
  60. package/dist/utils/zod.gen.d.ts.map +1 -1
  61. package/dist/utils/zod.gen.js +122 -0
  62. package/dist/utils/zod.gen.js.map +1 -1
  63. package/package.json +1 -1
@@ -1157,11 +1157,33 @@ export const OauthConnectionResponseSchema = {
1157
1157
  type: 'string',
1158
1158
  format: 'date-time',
1159
1159
  },
1160
+ canPublish: {
1161
+ type: 'boolean',
1162
+ },
1163
+ canReadComments: {
1164
+ type: 'boolean',
1165
+ },
1166
+ canReply: {
1167
+ type: 'boolean',
1168
+ },
1169
+ canReadStats: {
1170
+ type: 'boolean',
1171
+ description: 'Like and comment counts on a post',
1172
+ },
1173
+ reconnectRequired: {
1174
+ 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',
1176
+ },
1160
1177
  },
1161
1178
  required: [
1162
1179
  'agencyId',
1180
+ 'canPublish',
1181
+ 'canReadComments',
1182
+ 'canReadStats',
1183
+ 'canReply',
1163
1184
  'createdAt',
1164
1185
  'provider',
1186
+ 'reconnectRequired',
1165
1187
  'status',
1166
1188
  'updatedAt',
1167
1189
  'userId',
@@ -1600,6 +1622,172 @@ export const PercentageSchema = {
1600
1622
  ],
1601
1623
  required: ['rate'],
1602
1624
  };
1625
+ export const FocusRequestSchema = {
1626
+ type: 'object',
1627
+ properties: {
1628
+ x: {
1629
+ type: 'number',
1630
+ format: 'double',
1631
+ },
1632
+ y: {
1633
+ type: 'number',
1634
+ format: 'double',
1635
+ },
1636
+ },
1637
+ required: ['x', 'y'],
1638
+ };
1639
+ export const PhotoSchema = {
1640
+ type: 'object',
1641
+ properties: {
1642
+ photoId: {
1643
+ type: 'integer',
1644
+ format: 'int64',
1645
+ },
1646
+ mode: {
1647
+ type: 'string',
1648
+ enum: ['AUTO', 'CROP', 'FIT'],
1649
+ },
1650
+ focus: {
1651
+ $ref: '#/components/schemas/FocusRequest',
1652
+ },
1653
+ },
1654
+ required: ['photoId'],
1655
+ };
1656
+ export const PublishSocialPostRequestSchema = {
1657
+ type: 'object',
1658
+ properties: {
1659
+ channel: {
1660
+ type: 'string',
1661
+ enum: ['FACEBOOK', 'INSTAGRAM'],
1662
+ },
1663
+ caption: {
1664
+ type: 'string',
1665
+ },
1666
+ ratio: {
1667
+ type: 'string',
1668
+ description: 'Instagram only; defaults to LANDSCAPE',
1669
+ enum: ['LANDSCAPE', 'SQUARE', 'PORTRAIT'],
1670
+ },
1671
+ photos: {
1672
+ type: 'array',
1673
+ description: 'In post order',
1674
+ items: {
1675
+ $ref: '#/components/schemas/Photo',
1676
+ },
1677
+ },
1678
+ templateId: {
1679
+ type: 'string',
1680
+ format: 'uuid',
1681
+ },
1682
+ },
1683
+ required: ['caption', 'channel', 'photos'],
1684
+ };
1685
+ export const FocusViewSchema = {
1686
+ type: 'object',
1687
+ properties: {
1688
+ x: {
1689
+ type: 'number',
1690
+ format: 'double',
1691
+ },
1692
+ y: {
1693
+ type: 'number',
1694
+ format: 'double',
1695
+ },
1696
+ },
1697
+ required: ['x', 'y'],
1698
+ };
1699
+ export const PhotoViewSchema = {
1700
+ type: 'object',
1701
+ properties: {
1702
+ photoId: {
1703
+ type: 'integer',
1704
+ format: 'int64',
1705
+ },
1706
+ mode: {
1707
+ type: 'string',
1708
+ enum: ['AUTO', 'CROP', 'FIT'],
1709
+ },
1710
+ focus: {
1711
+ $ref: '#/components/schemas/FocusView',
1712
+ },
1713
+ },
1714
+ required: ['focus', 'mode', 'photoId'],
1715
+ };
1716
+ export const SocialPostViewSchema = {
1717
+ type: 'object',
1718
+ properties: {
1719
+ id: {
1720
+ type: 'string',
1721
+ format: 'uuid',
1722
+ },
1723
+ channel: {
1724
+ type: 'string',
1725
+ enum: ['FACEBOOK', 'INSTAGRAM'],
1726
+ },
1727
+ status: {
1728
+ type: 'string',
1729
+ enum: ['PUBLISHING', 'PUBLISHED', 'FAILED', 'REMOVED'],
1730
+ },
1731
+ caption: {
1732
+ type: 'string',
1733
+ },
1734
+ ratio: {
1735
+ type: 'string',
1736
+ description: 'Instagram only',
1737
+ enum: ['LANDSCAPE', 'SQUARE', 'PORTRAIT'],
1738
+ },
1739
+ photos: {
1740
+ type: 'array',
1741
+ items: {
1742
+ $ref: '#/components/schemas/PhotoView',
1743
+ },
1744
+ },
1745
+ templateId: {
1746
+ type: 'string',
1747
+ format: 'uuid',
1748
+ },
1749
+ failureReason: {
1750
+ type: 'string',
1751
+ enum: [
1752
+ 'RECONNECT_REQUIRED',
1753
+ 'PERMISSION_MISSING',
1754
+ 'PAGE_PUBLISHING_AUTHORIZATION',
1755
+ 'RATE_LIMITED',
1756
+ 'BAD_MEDIA',
1757
+ 'UNCONFIRMED',
1758
+ 'UNKNOWN',
1759
+ ],
1760
+ },
1761
+ failureDetail: {
1762
+ type: 'string',
1763
+ },
1764
+ permalink: {
1765
+ type: 'string',
1766
+ description: 'The post on Facebook / Instagram, once published',
1767
+ },
1768
+ publishedAt: {
1769
+ type: 'string',
1770
+ format: 'date-time',
1771
+ },
1772
+ createdBy: {
1773
+ type: 'string',
1774
+ format: 'uuid',
1775
+ },
1776
+ createdAt: {
1777
+ type: 'string',
1778
+ format: 'date-time',
1779
+ },
1780
+ },
1781
+ required: [
1782
+ 'caption',
1783
+ 'channel',
1784
+ 'createdAt',
1785
+ 'createdBy',
1786
+ 'id',
1787
+ 'photos',
1788
+ 'status',
1789
+ ],
1790
+ };
1603
1791
  export const CloseListingRequestSchema = {
1604
1792
  type: 'object',
1605
1793
  properties: {
@@ -1669,6 +1857,20 @@ export const IdResponseLongSchema = {
1669
1857
  },
1670
1858
  required: ['id'],
1671
1859
  };
1860
+ export const ExternalListingWithdrawRequestSchema = {
1861
+ type: 'object',
1862
+ properties: {
1863
+ platform: {
1864
+ type: 'string',
1865
+ enum: ['SS', 'MY_HOME'],
1866
+ },
1867
+ listingId: {
1868
+ type: 'integer',
1869
+ format: 'int64',
1870
+ },
1871
+ },
1872
+ required: ['listingId', 'platform'],
1873
+ };
1672
1874
  export const ExternalListingPublishRequestSchema = {
1673
1875
  type: 'object',
1674
1876
  properties: {
@@ -4285,7 +4487,14 @@ export const PlatformListingResponseSchema = {
4285
4487
  },
4286
4488
  status: {
4287
4489
  type: 'string',
4288
- enum: ['PENDING', 'SYNDICATED', 'FAILED', 'EXPIRED'],
4490
+ enum: [
4491
+ 'PENDING',
4492
+ 'SYNDICATED',
4493
+ 'FAILED',
4494
+ 'EXPIRED',
4495
+ 'WITHDRAWING',
4496
+ 'WITHDRAWN',
4497
+ ],
4289
4498
  },
4290
4499
  listedAt: {
4291
4500
  type: 'string',
@@ -4299,6 +4508,9 @@ export const PlatformListingResponseSchema = {
4299
4508
  type: 'string',
4300
4509
  format: 'date',
4301
4510
  },
4511
+ failureReason: {
4512
+ type: 'string',
4513
+ },
4302
4514
  boost: {
4303
4515
  $ref: '#/components/schemas/BoostResponse',
4304
4516
  },
@@ -4378,7 +4590,7 @@ export const PropertyListingResponseSchema = {
4378
4590
  },
4379
4591
  isProcessing: {
4380
4592
  type: 'boolean',
4381
- description: 'True while an external-portal placement or boost is in flight — poll the property page until false. Creating the Homespot listing itself is synchronous, so it never sets this.',
4593
+ description: '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.',
4382
4594
  },
4383
4595
  price: {
4384
4596
  type: 'number',
@@ -4402,6 +4614,13 @@ export const PropertyListingResponseSchema = {
4402
4614
  $ref: '#/components/schemas/PlatformListingResponse',
4403
4615
  },
4404
4616
  },
4617
+ socialPosts: {
4618
+ type: 'array',
4619
+ description: 'Facebook / Instagram posts of this listing, newest first',
4620
+ items: {
4621
+ $ref: '#/components/schemas/SocialPostResponse',
4622
+ },
4623
+ },
4405
4624
  createdAt: {
4406
4625
  type: 'string',
4407
4626
  format: 'date-time',
@@ -4421,6 +4640,7 @@ export const PropertyListingResponseSchema = {
4421
4640
  'platformListings',
4422
4641
  'price',
4423
4642
  'publicId',
4643
+ 'socialPosts',
4424
4644
  ],
4425
4645
  };
4426
4646
  export const PropertyPageResponseSchema = {
@@ -4510,6 +4730,84 @@ export const PropertyPageResponseSchema = {
4510
4730
  'updatedAt',
4511
4731
  ],
4512
4732
  };
4733
+ export const SocialPostResponseSchema = {
4734
+ type: 'object',
4735
+ properties: {
4736
+ postId: {
4737
+ type: 'string',
4738
+ format: 'uuid',
4739
+ description: 'For retrying a failed post, or reading it in full',
4740
+ },
4741
+ channel: {
4742
+ type: 'string',
4743
+ enum: ['FACEBOOK', 'INSTAGRAM'],
4744
+ },
4745
+ status: {
4746
+ type: 'string',
4747
+ enum: ['PUBLISHING', 'PUBLISHED', 'FAILED', 'REMOVED'],
4748
+ },
4749
+ caption: {
4750
+ type: 'string',
4751
+ description: 'Exactly as published',
4752
+ },
4753
+ thumbnailUrl: {
4754
+ type: 'string',
4755
+ description: "The post's first photo, as uploaded to the gallery (not the Instagram crop)",
4756
+ },
4757
+ permalink: {
4758
+ type: 'string',
4759
+ description: 'The post on Facebook / Instagram, once published',
4760
+ },
4761
+ publishedAt: {
4762
+ type: 'string',
4763
+ format: 'date-time',
4764
+ },
4765
+ createdBy: {
4766
+ $ref: '#/components/schemas/MemberPeekResponse',
4767
+ description: 'The member who created the post, also after they left the agency',
4768
+ },
4769
+ failureReason: {
4770
+ type: 'string',
4771
+ enum: [
4772
+ 'RECONNECT_REQUIRED',
4773
+ 'PERMISSION_MISSING',
4774
+ 'PAGE_PUBLISHING_AUTHORIZATION',
4775
+ 'RATE_LIMITED',
4776
+ 'BAD_MEDIA',
4777
+ 'UNCONFIRMED',
4778
+ 'UNKNOWN',
4779
+ ],
4780
+ },
4781
+ stats: {
4782
+ $ref: '#/components/schemas/SocialPostStats',
4783
+ description: "The post's public counts as last read from Facebook / Instagram; null until the first read",
4784
+ },
4785
+ },
4786
+ required: ['caption', 'channel', 'createdBy', 'postId', 'status'],
4787
+ };
4788
+ export const SocialPostStatsSchema = {
4789
+ type: 'object',
4790
+ properties: {
4791
+ likes: {
4792
+ type: 'integer',
4793
+ format: 'int32',
4794
+ },
4795
+ comments: {
4796
+ type: 'integer',
4797
+ format: 'int32',
4798
+ },
4799
+ shares: {
4800
+ type: 'integer',
4801
+ format: 'int32',
4802
+ },
4803
+ fetchedAt: {
4804
+ type: 'string',
4805
+ format: 'date-time',
4806
+ description: 'When the counts were read — show how old they are',
4807
+ },
4808
+ },
4809
+ required: ['comments', 'fetchedAt', 'likes', 'shares'],
4810
+ };
4513
4811
  export const ListingOwnerContactResponseSchema = {
4514
4812
  type: 'object',
4515
4813
  properties: {
@@ -4554,6 +4852,25 @@ export const AgentCommentedSchema = {
4554
4852
  },
4555
4853
  required: ['kind'],
4556
4854
  };
4855
+ export const ChannelReauthRequiredSchema = {
4856
+ properties: {
4857
+ connectionId: {
4858
+ $ref: '#/components/schemas/ConnectionId',
4859
+ },
4860
+ channelType: {
4861
+ type: 'string',
4862
+ enum: ['FACEBOOK', 'INSTAGRAM', 'WHATSAPP', 'TIKTOK'],
4863
+ },
4864
+ displayName: {
4865
+ type: 'string',
4866
+ },
4867
+ kind: {
4868
+ type: 'string',
4869
+ enum: ['CHANNEL_REAUTH_REQUIRED'],
4870
+ },
4871
+ },
4872
+ required: ['kind'],
4873
+ };
4557
4874
  export const CommentIdSchema = {
4558
4875
  type: 'object',
4559
4876
  properties: {
@@ -4563,6 +4880,15 @@ export const CommentIdSchema = {
4563
4880
  },
4564
4881
  },
4565
4882
  };
4883
+ export const ConnectionIdSchema = {
4884
+ type: 'object',
4885
+ properties: {
4886
+ value: {
4887
+ type: 'string',
4888
+ format: 'uuid',
4889
+ },
4890
+ },
4891
+ };
4566
4892
  export const ContactAssignedSchema = {
4567
4893
  properties: {
4568
4894
  contactId: {
@@ -4734,6 +5060,8 @@ export const NotificationContentSchema = {
4734
5060
  SUBSCRIPTION_ENDING: '#/components/schemas/SubscriptionEnding',
4735
5061
  SUBSCRIPTION_EXPIRED: '#/components/schemas/SubscriptionExpired',
4736
5062
  SUBSCRIPTION_PAYMENT_REVERSED: '#/components/schemas/SubscriptionPaymentReversed',
5063
+ CHANNEL_REAUTH_REQUIRED: '#/components/schemas/ChannelReauthRequired',
5064
+ SOCIAL_POST_FAILED: '#/components/schemas/SocialPostFailed',
4737
5065
  },
4738
5066
  },
4739
5067
  required: ['kind'],
@@ -4776,6 +5104,8 @@ export const NotificationViewSchema = {
4776
5104
  'SUBSCRIPTION_ENDING',
4777
5105
  'SUBSCRIPTION_EXPIRED',
4778
5106
  'SUBSCRIPTION_PAYMENT_REVERSED',
5107
+ 'CHANNEL_REAUTH_REQUIRED',
5108
+ 'SOCIAL_POST_FAILED',
4779
5109
  ],
4780
5110
  },
4781
5111
  targetId: {
@@ -4786,6 +5116,9 @@ export const NotificationViewSchema = {
4786
5116
  {
4787
5117
  $ref: '#/components/schemas/AgentCommented',
4788
5118
  },
5119
+ {
5120
+ $ref: '#/components/schemas/ChannelReauthRequired',
5121
+ },
4789
5122
  {
4790
5123
  $ref: '#/components/schemas/ContactAssigned',
4791
5124
  },
@@ -4798,6 +5131,9 @@ export const NotificationViewSchema = {
4798
5131
  {
4799
5132
  $ref: '#/components/schemas/NewSeekerRating',
4800
5133
  },
5134
+ {
5135
+ $ref: '#/components/schemas/SocialPostFailed',
5136
+ },
4801
5137
  {
4802
5138
  $ref: '#/components/schemas/SubscriptionEnding',
4803
5139
  },
@@ -4834,6 +5170,56 @@ export const PropertyIdSchema = {
4834
5170
  },
4835
5171
  },
4836
5172
  };
5173
+ export const SocialPostFailedSchema = {
5174
+ properties: {
5175
+ postId: {
5176
+ $ref: '#/components/schemas/SocialPostId',
5177
+ },
5178
+ contactId: {
5179
+ $ref: '#/components/schemas/ContactId',
5180
+ },
5181
+ propertyId: {
5182
+ $ref: '#/components/schemas/PropertyId',
5183
+ },
5184
+ listingId: {
5185
+ type: 'integer',
5186
+ format: 'int64',
5187
+ },
5188
+ propertyTitle: {
5189
+ type: 'string',
5190
+ },
5191
+ channel: {
5192
+ type: 'string',
5193
+ enum: ['FACEBOOK', 'INSTAGRAM'],
5194
+ },
5195
+ reason: {
5196
+ type: 'string',
5197
+ enum: [
5198
+ 'RECONNECT_REQUIRED',
5199
+ 'PERMISSION_MISSING',
5200
+ 'PAGE_PUBLISHING_AUTHORIZATION',
5201
+ 'RATE_LIMITED',
5202
+ 'BAD_MEDIA',
5203
+ 'UNCONFIRMED',
5204
+ 'UNKNOWN',
5205
+ ],
5206
+ },
5207
+ kind: {
5208
+ type: 'string',
5209
+ enum: ['SOCIAL_POST_FAILED'],
5210
+ },
5211
+ },
5212
+ required: ['kind'],
5213
+ };
5214
+ export const SocialPostIdSchema = {
5215
+ type: 'object',
5216
+ properties: {
5217
+ value: {
5218
+ type: 'string',
5219
+ format: 'uuid',
5220
+ },
5221
+ },
5222
+ };
4837
5223
  export const SubscriptionEndingSchema = {
4838
5224
  properties: {
4839
5225
  subscriptionId: {
@@ -5374,6 +5760,13 @@ export const ListingGridResponseSchema = {
5374
5760
  $ref: '#/components/schemas/PlatformView',
5375
5761
  },
5376
5762
  },
5763
+ socialPosts: {
5764
+ type: 'array',
5765
+ description: 'Where the listing is posted on Facebook / Instagram: the latest published post per channel',
5766
+ items: {
5767
+ $ref: '#/components/schemas/SocialPostLink',
5768
+ },
5769
+ },
5377
5770
  createdAt: {
5378
5771
  type: 'string',
5379
5772
  format: 'date-time',
@@ -5394,6 +5787,7 @@ export const ListingGridResponseSchema = {
5394
5787
  'propertyId',
5395
5788
  'propertyState',
5396
5789
  'propertyType',
5790
+ 'socialPosts',
5397
5791
  'title',
5398
5792
  'updatedAt',
5399
5793
  ],
@@ -5437,6 +5831,20 @@ export const PlatformViewSchema = {
5437
5831
  },
5438
5832
  },
5439
5833
  };
5834
+ export const SocialPostLinkSchema = {
5835
+ type: 'object',
5836
+ properties: {
5837
+ channel: {
5838
+ type: 'string',
5839
+ enum: ['FACEBOOK', 'INSTAGRAM'],
5840
+ },
5841
+ permalink: {
5842
+ type: 'string',
5843
+ description: 'Opens the post on Facebook / Instagram',
5844
+ },
5845
+ },
5846
+ required: ['channel', 'permalink'],
5847
+ };
5440
5848
  export const GroupCountSchema = {
5441
5849
  type: 'object',
5442
5850
  properties: {
@@ -5888,6 +6296,95 @@ export const CursorPageMessageViewSchema = {
5888
6296
  },
5889
6297
  },
5890
6298
  };
6299
+ export const ComposerLimitsSchema = {
6300
+ type: 'object',
6301
+ properties: {
6302
+ maxPhotos: {
6303
+ type: 'integer',
6304
+ format: 'int32',
6305
+ },
6306
+ maxCaptionLength: {
6307
+ type: 'integer',
6308
+ format: 'int32',
6309
+ description: 'In Unicode code points: an emoji counts once, as [...text].length counts in JavaScript (text.length counts it twice)',
6310
+ },
6311
+ },
6312
+ required: ['maxCaptionLength', 'maxPhotos'],
6313
+ };
6314
+ export const ComposerPhotoSchema = {
6315
+ type: 'object',
6316
+ properties: {
6317
+ photoId: {
6318
+ type: 'integer',
6319
+ format: 'int64',
6320
+ description: 'What the publish request sends',
6321
+ },
6322
+ url: {
6323
+ type: 'string',
6324
+ },
6325
+ width: {
6326
+ type: 'integer',
6327
+ format: 'int32',
6328
+ description: 'As the photo is shown, in pixels',
6329
+ },
6330
+ height: {
6331
+ type: 'integer',
6332
+ format: 'int32',
6333
+ description: 'As the photo is shown, in pixels',
6334
+ },
6335
+ selectedByDefault: {
6336
+ type: 'boolean',
6337
+ },
6338
+ },
6339
+ required: ['height', 'photoId', 'selectedByDefault', 'url', 'width'],
6340
+ };
6341
+ export const ComposerPreviewSchema = {
6342
+ type: 'object',
6343
+ properties: {
6344
+ channel: {
6345
+ type: 'string',
6346
+ enum: ['FACEBOOK', 'INSTAGRAM'],
6347
+ },
6348
+ caption: {
6349
+ type: 'string',
6350
+ description: 'The built-in Georgian template filled in from the listing; a line with nothing to fill it is left out',
6351
+ },
6352
+ templateId: {
6353
+ type: 'string',
6354
+ format: 'uuid',
6355
+ description: 'The template the text came from, sent back on publish; null for the built-in one',
6356
+ },
6357
+ limits: {
6358
+ $ref: '#/components/schemas/ComposerLimits',
6359
+ },
6360
+ ratios: {
6361
+ type: 'array',
6362
+ description: "The shapes the agent can pick; empty on Facebook, which keeps each photo's own",
6363
+ items: {
6364
+ type: 'string',
6365
+ enum: ['LANDSCAPE', 'SQUARE', 'PORTRAIT'],
6366
+ },
6367
+ },
6368
+ defaultRatio: {
6369
+ type: 'string',
6370
+ description: 'Instagram only',
6371
+ enum: ['LANDSCAPE', 'SQUARE', 'PORTRAIT'],
6372
+ },
6373
+ photos: {
6374
+ type: 'array',
6375
+ description: 'The whole gallery, in gallery order',
6376
+ items: {
6377
+ $ref: '#/components/schemas/ComposerPhoto',
6378
+ },
6379
+ },
6380
+ access: {
6381
+ type: 'string',
6382
+ description: 'Whether the agency can post to the channel now; publishing refuses anything but ALLOWED',
6383
+ enum: ['ALLOWED', 'NOT_CONNECTED', 'RECONNECT_REQUIRED'],
6384
+ },
6385
+ },
6386
+ required: ['access', 'caption', 'channel', 'limits', 'photos', 'ratios'],
6387
+ };
5891
6388
  export const ContactGridResponseSchema = {
5892
6389
  type: 'object',
5893
6390
  properties: {