@getlatedev/node 0.1.10 → 0.1.12

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.
@@ -164,6 +164,79 @@ export type FollowerStatsResponse = {
164
164
 
165
165
  export type aggregation = 'daily' | 'weekly' | 'monthly';
166
166
 
167
+ export type FoodMenu = {
168
+ labels: Array<FoodMenuLabel>;
169
+ sections?: Array<FoodMenuSection>;
170
+ /**
171
+ * Cuisine types (e.g. AMERICAN, ITALIAN, JAPANESE)
172
+ */
173
+ cuisines?: Array<(string)>;
174
+ /**
175
+ * URL of the original menu source
176
+ */
177
+ sourceUrl?: string;
178
+ };
179
+
180
+ export type FoodMenuItem = {
181
+ labels: Array<FoodMenuLabel>;
182
+ attributes?: FoodMenuItemAttributes;
183
+ /**
184
+ * Item variants/options (e.g. sizes, preparations)
185
+ */
186
+ options?: Array<{
187
+ labels?: Array<FoodMenuLabel>;
188
+ attributes?: FoodMenuItemAttributes;
189
+ }>;
190
+ };
191
+
192
+ export type FoodMenuItemAttributes = {
193
+ price?: Money;
194
+ /**
195
+ * Spiciness level (e.g. MILD, MEDIUM, HOT)
196
+ */
197
+ spiciness?: string;
198
+ /**
199
+ * Allergens (e.g. DAIRY, GLUTEN, SHELLFISH)
200
+ */
201
+ allergen?: Array<(string)>;
202
+ /**
203
+ * Dietary labels (e.g. VEGETARIAN, VEGAN, GLUTEN_FREE)
204
+ */
205
+ dietaryRestriction?: Array<(string)>;
206
+ /**
207
+ * Number of people the item serves
208
+ */
209
+ servesNumPeople?: number;
210
+ /**
211
+ * Preparation methods (e.g. GRILLED, FRIED)
212
+ */
213
+ preparationMethods?: Array<(string)>;
214
+ /**
215
+ * Media references for item photos
216
+ */
217
+ mediaKeys?: Array<(string)>;
218
+ };
219
+
220
+ export type FoodMenuLabel = {
221
+ /**
222
+ * Display name of the item/section/menu
223
+ */
224
+ displayName: string;
225
+ /**
226
+ * Optional description
227
+ */
228
+ description?: string;
229
+ /**
230
+ * BCP-47 language code (e.g. en, es)
231
+ */
232
+ languageCode?: string;
233
+ };
234
+
235
+ export type FoodMenuSection = {
236
+ labels: Array<FoodMenuLabel>;
237
+ items?: Array<FoodMenuItem>;
238
+ };
239
+
167
240
  /**
168
241
  * Google Business Profile post settings:
169
242
  * - Posts support text content and a single image (no videos)
@@ -512,6 +585,21 @@ export type MediaUploadResponse = {
512
585
  files?: Array<UploadedFile>;
513
586
  };
514
587
 
588
+ export type Money = {
589
+ /**
590
+ * ISO 4217 currency code (e.g. USD, EUR)
591
+ */
592
+ currencyCode: string;
593
+ /**
594
+ * Whole units of the amount
595
+ */
596
+ units: string;
597
+ /**
598
+ * Nano units (10^-9) of the amount
599
+ */
600
+ nanos?: number;
601
+ };
602
+
515
603
  export type Pagination = {
516
604
  page?: number;
517
605
  limit?: number;
@@ -714,6 +802,10 @@ export type PostAnalytics = {
714
802
  likes?: number;
715
803
  comments?: number;
716
804
  shares?: number;
805
+ /**
806
+ * Number of saves/bookmarks (Instagram, Pinterest)
807
+ */
808
+ saves?: number;
717
809
  clicks?: number;
718
810
  views?: number;
719
811
  engagementRate?: number;
@@ -3165,6 +3257,424 @@ export type GetGoogleBusinessReviewsError = (ErrorResponse | {
3165
3257
  error?: string;
3166
3258
  });
3167
3259
 
3260
+ export type GetGoogleBusinessFoodMenusData = {
3261
+ path: {
3262
+ /**
3263
+ * The Late account ID (from /v1/accounts)
3264
+ */
3265
+ accountId: string;
3266
+ };
3267
+ };
3268
+
3269
+ export type GetGoogleBusinessFoodMenusResponse = ({
3270
+ success?: boolean;
3271
+ accountId?: string;
3272
+ locationId?: string;
3273
+ /**
3274
+ * Resource name of the food menus
3275
+ */
3276
+ name?: string;
3277
+ menus?: Array<FoodMenu>;
3278
+ });
3279
+
3280
+ export type GetGoogleBusinessFoodMenusError = (ErrorResponse | {
3281
+ error?: string;
3282
+ });
3283
+
3284
+ export type UpdateGoogleBusinessFoodMenusData = {
3285
+ body: {
3286
+ /**
3287
+ * Array of food menus to set
3288
+ */
3289
+ menus: Array<FoodMenu>;
3290
+ /**
3291
+ * Field mask for partial updates (e.g. "menus")
3292
+ */
3293
+ updateMask?: string;
3294
+ };
3295
+ path: {
3296
+ /**
3297
+ * The Late account ID (from /v1/accounts)
3298
+ */
3299
+ accountId: string;
3300
+ };
3301
+ };
3302
+
3303
+ export type UpdateGoogleBusinessFoodMenusResponse = ({
3304
+ success?: boolean;
3305
+ accountId?: string;
3306
+ locationId?: string;
3307
+ name?: string;
3308
+ menus?: Array<FoodMenu>;
3309
+ });
3310
+
3311
+ export type UpdateGoogleBusinessFoodMenusError = (ErrorResponse | {
3312
+ error?: string;
3313
+ });
3314
+
3315
+ export type GetGoogleBusinessLocationDetailsData = {
3316
+ path: {
3317
+ /**
3318
+ * The Late account ID (from /v1/accounts)
3319
+ */
3320
+ accountId: string;
3321
+ };
3322
+ query?: {
3323
+ /**
3324
+ * Comma-separated fields to return. Defaults to common fields.
3325
+ * Available: name, title, phoneNumbers, categories, storefrontAddress, websiteUri,
3326
+ * regularHours, specialHours, serviceArea, profile, openInfo, metadata, moreHours
3327
+ *
3328
+ */
3329
+ readMask?: string;
3330
+ };
3331
+ };
3332
+
3333
+ export type GetGoogleBusinessLocationDetailsResponse = ({
3334
+ success?: boolean;
3335
+ accountId?: string;
3336
+ locationId?: string;
3337
+ /**
3338
+ * Business name
3339
+ */
3340
+ title?: string;
3341
+ regularHours?: {
3342
+ periods?: Array<{
3343
+ openDay?: 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY';
3344
+ /**
3345
+ * Opening time in HH:MM format
3346
+ */
3347
+ openTime?: string;
3348
+ closeDay?: string;
3349
+ closeTime?: string;
3350
+ }>;
3351
+ };
3352
+ specialHours?: {
3353
+ specialHourPeriods?: Array<{
3354
+ startDate?: {
3355
+ year?: number;
3356
+ month?: number;
3357
+ day?: number;
3358
+ };
3359
+ endDate?: {
3360
+ year?: number;
3361
+ month?: number;
3362
+ day?: number;
3363
+ };
3364
+ openTime?: string;
3365
+ closeTime?: string;
3366
+ closed?: boolean;
3367
+ }>;
3368
+ };
3369
+ profile?: {
3370
+ /**
3371
+ * Business description
3372
+ */
3373
+ description?: string;
3374
+ };
3375
+ websiteUri?: string;
3376
+ phoneNumbers?: {
3377
+ primaryPhone?: string;
3378
+ additionalPhones?: Array<(string)>;
3379
+ };
3380
+ });
3381
+
3382
+ export type GetGoogleBusinessLocationDetailsError = (ErrorResponse | {
3383
+ error?: string;
3384
+ });
3385
+
3386
+ export type UpdateGoogleBusinessLocationDetailsData = {
3387
+ body: {
3388
+ /**
3389
+ * Required. Comma-separated fields to update (e.g. 'regularHours', 'specialHours', 'profile.description')
3390
+ */
3391
+ updateMask: string;
3392
+ regularHours?: {
3393
+ periods?: Array<{
3394
+ openDay?: string;
3395
+ openTime?: string;
3396
+ closeDay?: string;
3397
+ closeTime?: string;
3398
+ }>;
3399
+ };
3400
+ specialHours?: {
3401
+ specialHourPeriods?: Array<{
3402
+ startDate?: {
3403
+ year?: number;
3404
+ month?: number;
3405
+ day?: number;
3406
+ };
3407
+ endDate?: {
3408
+ year?: number;
3409
+ month?: number;
3410
+ day?: number;
3411
+ };
3412
+ openTime?: string;
3413
+ closeTime?: string;
3414
+ closed?: boolean;
3415
+ }>;
3416
+ };
3417
+ profile?: {
3418
+ description?: string;
3419
+ };
3420
+ websiteUri?: string;
3421
+ phoneNumbers?: {
3422
+ primaryPhone?: string;
3423
+ additionalPhones?: Array<(string)>;
3424
+ };
3425
+ };
3426
+ path: {
3427
+ /**
3428
+ * The Late account ID (from /v1/accounts)
3429
+ */
3430
+ accountId: string;
3431
+ };
3432
+ };
3433
+
3434
+ export type UpdateGoogleBusinessLocationDetailsResponse = ({
3435
+ success?: boolean;
3436
+ accountId?: string;
3437
+ locationId?: string;
3438
+ });
3439
+
3440
+ export type UpdateGoogleBusinessLocationDetailsError = (ErrorResponse | {
3441
+ error?: string;
3442
+ });
3443
+
3444
+ export type ListGoogleBusinessMediaData = {
3445
+ path: {
3446
+ accountId: string;
3447
+ };
3448
+ query?: {
3449
+ /**
3450
+ * Number of items to return (max 100)
3451
+ */
3452
+ pageSize?: number;
3453
+ /**
3454
+ * Pagination token from previous response
3455
+ */
3456
+ pageToken?: string;
3457
+ };
3458
+ };
3459
+
3460
+ export type ListGoogleBusinessMediaResponse = ({
3461
+ success?: boolean;
3462
+ accountId?: string;
3463
+ locationId?: string;
3464
+ mediaItems?: Array<{
3465
+ /**
3466
+ * Resource name
3467
+ */
3468
+ name?: string;
3469
+ mediaFormat?: 'PHOTO' | 'VIDEO';
3470
+ sourceUrl?: string;
3471
+ /**
3472
+ * Google-hosted URL
3473
+ */
3474
+ googleUrl?: string;
3475
+ thumbnailUrl?: string;
3476
+ description?: string;
3477
+ createTime?: string;
3478
+ locationAssociation?: {
3479
+ category?: string;
3480
+ };
3481
+ }>;
3482
+ nextPageToken?: string;
3483
+ totalMediaItemsCount?: number;
3484
+ });
3485
+
3486
+ export type ListGoogleBusinessMediaError = (ErrorResponse);
3487
+
3488
+ export type CreateGoogleBusinessMediaData = {
3489
+ body: {
3490
+ /**
3491
+ * Publicly accessible image URL
3492
+ */
3493
+ sourceUrl: string;
3494
+ mediaFormat?: 'PHOTO' | 'VIDEO';
3495
+ /**
3496
+ * Photo description
3497
+ */
3498
+ description?: string;
3499
+ /**
3500
+ * Where the photo appears on the listing
3501
+ */
3502
+ category?: 'COVER' | 'PROFILE' | 'LOGO' | 'EXTERIOR' | 'INTERIOR' | 'FOOD_AND_DRINK' | 'MENU' | 'PRODUCT' | 'TEAMS' | 'ADDITIONAL';
3503
+ };
3504
+ path: {
3505
+ accountId: string;
3506
+ };
3507
+ };
3508
+
3509
+ export type CreateGoogleBusinessMediaResponse = ({
3510
+ success?: boolean;
3511
+ name?: string;
3512
+ mediaFormat?: string;
3513
+ googleUrl?: string;
3514
+ });
3515
+
3516
+ export type CreateGoogleBusinessMediaError = (ErrorResponse);
3517
+
3518
+ export type DeleteGoogleBusinessMediaData = {
3519
+ path: {
3520
+ accountId: string;
3521
+ };
3522
+ query: {
3523
+ /**
3524
+ * The media item ID to delete
3525
+ */
3526
+ mediaId: string;
3527
+ };
3528
+ };
3529
+
3530
+ export type DeleteGoogleBusinessMediaResponse = ({
3531
+ success?: boolean;
3532
+ deleted?: boolean;
3533
+ mediaId?: string;
3534
+ });
3535
+
3536
+ export type DeleteGoogleBusinessMediaError = (ErrorResponse);
3537
+
3538
+ export type GetGoogleBusinessAttributesData = {
3539
+ path: {
3540
+ accountId: string;
3541
+ };
3542
+ };
3543
+
3544
+ export type GetGoogleBusinessAttributesResponse = ({
3545
+ success?: boolean;
3546
+ accountId?: string;
3547
+ locationId?: string;
3548
+ attributes?: Array<{
3549
+ /**
3550
+ * Attribute identifier (e.g. has_delivery)
3551
+ */
3552
+ name?: string;
3553
+ /**
3554
+ * Value type (BOOL, ENUM, URL, REPEATED_ENUM)
3555
+ */
3556
+ valueType?: string;
3557
+ values?: Array<unknown>;
3558
+ repeatedEnumValue?: {
3559
+ setValues?: Array<(string)>;
3560
+ unsetValues?: Array<(string)>;
3561
+ };
3562
+ }>;
3563
+ });
3564
+
3565
+ export type GetGoogleBusinessAttributesError = (ErrorResponse);
3566
+
3567
+ export type UpdateGoogleBusinessAttributesData = {
3568
+ body: {
3569
+ attributes: Array<{
3570
+ name?: string;
3571
+ values?: Array<unknown>;
3572
+ repeatedEnumValue?: {
3573
+ setValues?: Array<(string)>;
3574
+ unsetValues?: Array<(string)>;
3575
+ };
3576
+ }>;
3577
+ /**
3578
+ * Comma-separated attribute names to update (e.g. 'has_delivery,has_takeout')
3579
+ */
3580
+ attributeMask: string;
3581
+ };
3582
+ path: {
3583
+ accountId: string;
3584
+ };
3585
+ };
3586
+
3587
+ export type UpdateGoogleBusinessAttributesResponse = ({
3588
+ success?: boolean;
3589
+ accountId?: string;
3590
+ locationId?: string;
3591
+ attributes?: Array<{
3592
+ [key: string]: unknown;
3593
+ }>;
3594
+ });
3595
+
3596
+ export type UpdateGoogleBusinessAttributesError = (ErrorResponse);
3597
+
3598
+ export type ListGoogleBusinessPlaceActionsData = {
3599
+ path: {
3600
+ accountId: string;
3601
+ };
3602
+ query?: {
3603
+ pageSize?: number;
3604
+ pageToken?: string;
3605
+ };
3606
+ };
3607
+
3608
+ export type ListGoogleBusinessPlaceActionsResponse = ({
3609
+ success?: boolean;
3610
+ accountId?: string;
3611
+ locationId?: string;
3612
+ placeActionLinks?: Array<{
3613
+ /**
3614
+ * Resource name
3615
+ */
3616
+ name?: string;
3617
+ /**
3618
+ * Action URL
3619
+ */
3620
+ uri?: string;
3621
+ placeActionType?: string;
3622
+ createTime?: string;
3623
+ updateTime?: string;
3624
+ }>;
3625
+ nextPageToken?: string;
3626
+ });
3627
+
3628
+ export type ListGoogleBusinessPlaceActionsError = (ErrorResponse);
3629
+
3630
+ export type CreateGoogleBusinessPlaceActionData = {
3631
+ body: {
3632
+ /**
3633
+ * The action URL
3634
+ */
3635
+ uri: string;
3636
+ /**
3637
+ * Type of action
3638
+ */
3639
+ placeActionType: 'APPOINTMENT' | 'ONLINE_APPOINTMENT' | 'DINING_RESERVATION' | 'FOOD_ORDERING' | 'FOOD_DELIVERY' | 'FOOD_TAKEOUT' | 'SHOP_ONLINE';
3640
+ };
3641
+ path: {
3642
+ accountId: string;
3643
+ };
3644
+ };
3645
+
3646
+ export type CreateGoogleBusinessPlaceActionResponse = ({
3647
+ success?: boolean;
3648
+ /**
3649
+ * Resource name of the created link
3650
+ */
3651
+ name?: string;
3652
+ uri?: string;
3653
+ placeActionType?: string;
3654
+ });
3655
+
3656
+ export type CreateGoogleBusinessPlaceActionError = (ErrorResponse);
3657
+
3658
+ export type DeleteGoogleBusinessPlaceActionData = {
3659
+ path: {
3660
+ accountId: string;
3661
+ };
3662
+ query: {
3663
+ /**
3664
+ * The resource name of the place action link (e.g. locations/123/placeActionLinks/456)
3665
+ */
3666
+ name: string;
3667
+ };
3668
+ };
3669
+
3670
+ export type DeleteGoogleBusinessPlaceActionResponse = ({
3671
+ success?: boolean;
3672
+ deleted?: boolean;
3673
+ name?: string;
3674
+ });
3675
+
3676
+ export type DeleteGoogleBusinessPlaceActionError = (ErrorResponse);
3677
+
3168
3678
  export type GetPendingOAuthDataData = {
3169
3679
  query: {
3170
3680
  /**