{"version":3,"sources":["../../src/loyalty-v1-account-accounts.schemas.ts"],"sourcesContent":["import * as z from 'zod';\n\nexport const CreateAccountRequest = z.object({\n  contactId: z\n    .string()\n    .describe(\n      \"Contact ID for a site's contact. See the Contacts API for more information.\"\n    )\n    .regex(\n      /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n      'Must be a valid GUID'\n    ),\n});\nexport const CreateAccountResponse = z.object({\n  account: z\n    .object({\n      _id: z\n        .string()\n        .describe('Account ID.')\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional(),\n      contactId: z\n        .string()\n        .describe(\n          \"Account owner's contact ID. See the Contacts API to learn more about a site's contacts.\"\n        )\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional(),\n      memberId: z\n        .string()\n        .describe(\n          \"Member ID of the account owner. See the Members API to learn more about a site's members.\"\n        )\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional()\n        .nullable(),\n      points: z\n        .object({\n          balance: z\n            .number()\n            .int()\n            .describe(\n              'Current points balance.\\n\\nEqual to the sum of `earned` and `adjusted` points, minus `redeemed` points.'\n            )\n            .min(0)\n            .optional(),\n          earned: z\n            .number()\n            .int()\n            .describe('Total earned points.')\n            .min(0)\n            .optional(),\n          adjusted: z\n            .number()\n            .int()\n            .describe('Total adjusted points.')\n            .min(0)\n            .optional(),\n          redeemed: z\n            .number()\n            .int()\n            .describe('Total redeemed points.')\n            .min(0)\n            .optional(),\n          expired: z\n            .number()\n            .int()\n            .describe('Total expired points.')\n            .min(0)\n            .optional(),\n        })\n        .describe(\"Details of the account's point totals.\")\n        .optional(),\n      rewardAvailable: z\n        .boolean()\n        .describe(\n          'Whether the account has enough points in `points.balance` to redeem for a reward.'\n        )\n        .optional(),\n      _createdDate: z\n        .date()\n        .describe('Date and time the account was created.')\n        .optional()\n        .nullable(),\n      _updatedDate: z\n        .date()\n        .describe('Date and time the account was last updated.')\n        .optional()\n        .nullable(),\n      lastActivityDate: z\n        .date()\n        .describe(\"Date and time of the account's last activity.\")\n        .optional()\n        .nullable(),\n      revision: z\n        .string()\n        .regex(/^\\d+$/, 'Must be a valid UInt64 string')\n        .describe(\n          'Revision number, which increments by 1 each time the loyalty account is updated.\\n\\nTo prevent conflicting changes, the current `revision` must be passed when updating the loyalty account.\\n\\nIgnored when creating an account.'\n        )\n        .optional(),\n      tier: z\n        .object({\n          _id: z\n            .string()\n            .describe(\n              'Tier ID.\\n\\nThis field will not be returned if the account belongs to the base tier.'\n            )\n            .regex(\n              /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n              'Must be a valid GUID'\n            )\n            .optional()\n            .nullable(),\n          _updatedDate: z\n            .date()\n            .describe(\n              'Date and time the tier information was last recalculated.'\n            )\n            .optional()\n            .nullable(),\n          points: z\n            .number()\n            .int()\n            .describe(\n              \"Points earned and adjusted over the tier's current rolling window.\"\n            )\n            .min(0)\n            .optional(),\n        })\n        .describe(\n          'Tier information.\\n\\nSee the Tiers API for more information.'\n        )\n        .optional(),\n      contact: z\n        .object({\n          _id: z\n            .string()\n            .describe('Contact ID.')\n            .regex(\n              /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n              'Must be a valid GUID'\n            )\n            .optional()\n            .nullable(),\n          name: z\n            .string()\n            .describe(\"Contact's first and last name.\")\n            .optional()\n            .nullable(),\n          picture: z\n            .object({\n              _id: z.string().describe('WixMedia image ID.').optional(),\n              url: z.string().describe('Image URL.').optional(),\n              height: z\n                .number()\n                .int()\n                .describe('Original image height.')\n                .optional(),\n              width: z\n                .number()\n                .int()\n                .describe('Original image width.')\n                .optional(),\n            })\n            .describe(\"Contact's profile picture.\")\n            .optional(),\n          email: z\n            .string()\n            .describe(\"Contact's email address.\")\n            .email()\n            .optional()\n            .nullable(),\n          displayName: z\n            .string()\n            .describe(\n              \"Contact's first and last name. If no name is provided, uses contact's email.\"\n            )\n            .optional()\n            .nullable(),\n        })\n        .describe('Contact information.')\n        .optional(),\n      pointsExpiration: z\n        .object({\n          expirationDate: z\n            .date()\n            .describe('Date and time at which points are expiring.')\n            .optional()\n            .nullable(),\n          expiringPointsAmount: z\n            .number()\n            .int()\n            .describe('Amount of points that are going to expire at that date.')\n            .optional(),\n        })\n        .describe('Points expiration information.')\n        .optional(),\n    })\n    .describe('Created loyalty account.')\n    .optional(),\n});\nexport const EarnPointsRequest = z.object({\n  accountId: z\n    .string()\n    .describe('Loyalty account ID.')\n    .regex(\n      /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n      'Must be a valid GUID'\n    ),\n  options: z\n    .intersection(\n      z.object({\n        amount: z\n          .number()\n          .int()\n          .describe(\n            'Amount of points to earn. Must be a positive, whole number.\\n\\nMin: `1`\\n\\nMax: `9999999`'\n          )\n          .min(1)\n          .max(9999999)\n          .optional(),\n        description: z\n          .string()\n          .describe(\n            'Description of how the points were earned.\\n\\nMax: 100 characters'\n          )\n          .min(1)\n          .max(100)\n          .optional(),\n        appId: z\n          .string()\n          .describe(\n            \"ID of the app that initiated the transaction.\\n\\nIf points were earned manually, then the `appId` is the Loyalty app's\\n`wixAppId` of `553c79f3-5625-4f38-b14b-ef7c0d1e87df`. If points were earned in an automatic event,\\nthen the `appId` is from that automation's `sourceAppId`.\"\n          )\n          .min(1)\n          .max(100),\n        idempotencyKey: z\n          .string()\n          .describe(\n            'Unique string identifier generated by the app. Wix uses this identifier to recognize subsequent retries of the same request.\\n\\nPlease use `GUID` format.'\n          )\n          .min(1)\n          .max(256),\n        activityType: z\n          .string()\n          .describe(\n            'Activity type.\\n\\nIf points were earned through automation it should be set to the trigger key.'\n          )\n          .max(100)\n          .optional()\n          .nullable(),\n        orderId: z\n          .string()\n          .describe('Order ID which was source of this transaction.')\n          .max(512)\n          .optional()\n          .nullable(),\n        limitApplied: z\n          .boolean()\n          .describe(\n            'Whether the points amount was adjusted by an earn points limit provider.'\n          )\n          .optional(),\n      }),\n      z.xor([\n        z.object({ followedSocialMedia: z.never().optional() }),\n        z.object({\n          followedSocialMedia: z\n            .object({\n              channel: z\n                .string()\n                .describe(\n                  'Social media channel.\\nExample: `FACEBOOK`, `INSTAGRAM`.'\n                )\n                .max(32)\n                .optional(),\n            })\n            .describe('Followed social media details.'),\n        }),\n      ])\n    )\n    .describe('Earn points info.'),\n});\nexport const EarnPointsResponse = z.object({\n  account: z\n    .object({\n      _id: z\n        .string()\n        .describe('Account ID.')\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional(),\n      contactId: z\n        .string()\n        .describe(\n          \"Account owner's contact ID. See the Contacts API to learn more about a site's contacts.\"\n        )\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional(),\n      memberId: z\n        .string()\n        .describe(\n          \"Member ID of the account owner. See the Members API to learn more about a site's members.\"\n        )\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional()\n        .nullable(),\n      points: z\n        .object({\n          balance: z\n            .number()\n            .int()\n            .describe(\n              'Current points balance.\\n\\nEqual to the sum of `earned` and `adjusted` points, minus `redeemed` points.'\n            )\n            .min(0)\n            .optional(),\n          earned: z\n            .number()\n            .int()\n            .describe('Total earned points.')\n            .min(0)\n            .optional(),\n          adjusted: z\n            .number()\n            .int()\n            .describe('Total adjusted points.')\n            .min(0)\n            .optional(),\n          redeemed: z\n            .number()\n            .int()\n            .describe('Total redeemed points.')\n            .min(0)\n            .optional(),\n          expired: z\n            .number()\n            .int()\n            .describe('Total expired points.')\n            .min(0)\n            .optional(),\n        })\n        .describe(\"Details of the account's point totals.\")\n        .optional(),\n      rewardAvailable: z\n        .boolean()\n        .describe(\n          'Whether the account has enough points in `points.balance` to redeem for a reward.'\n        )\n        .optional(),\n      _createdDate: z\n        .date()\n        .describe('Date and time the account was created.')\n        .optional()\n        .nullable(),\n      _updatedDate: z\n        .date()\n        .describe('Date and time the account was last updated.')\n        .optional()\n        .nullable(),\n      lastActivityDate: z\n        .date()\n        .describe(\"Date and time of the account's last activity.\")\n        .optional()\n        .nullable(),\n      revision: z\n        .string()\n        .regex(/^\\d+$/, 'Must be a valid UInt64 string')\n        .describe(\n          'Revision number, which increments by 1 each time the loyalty account is updated.\\n\\nTo prevent conflicting changes, the current `revision` must be passed when updating the loyalty account.\\n\\nIgnored when creating an account.'\n        )\n        .optional(),\n      tier: z\n        .object({\n          _id: z\n            .string()\n            .describe(\n              'Tier ID.\\n\\nThis field will not be returned if the account belongs to the base tier.'\n            )\n            .regex(\n              /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n              'Must be a valid GUID'\n            )\n            .optional()\n            .nullable(),\n          _updatedDate: z\n            .date()\n            .describe(\n              'Date and time the tier information was last recalculated.'\n            )\n            .optional()\n            .nullable(),\n          points: z\n            .number()\n            .int()\n            .describe(\n              \"Points earned and adjusted over the tier's current rolling window.\"\n            )\n            .min(0)\n            .optional(),\n        })\n        .describe(\n          'Tier information.\\n\\nSee the Tiers API for more information.'\n        )\n        .optional(),\n      contact: z\n        .object({\n          _id: z\n            .string()\n            .describe('Contact ID.')\n            .regex(\n              /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n              'Must be a valid GUID'\n            )\n            .optional()\n            .nullable(),\n          name: z\n            .string()\n            .describe(\"Contact's first and last name.\")\n            .optional()\n            .nullable(),\n          picture: z\n            .object({\n              _id: z.string().describe('WixMedia image ID.').optional(),\n              url: z.string().describe('Image URL.').optional(),\n              height: z\n                .number()\n                .int()\n                .describe('Original image height.')\n                .optional(),\n              width: z\n                .number()\n                .int()\n                .describe('Original image width.')\n                .optional(),\n            })\n            .describe(\"Contact's profile picture.\")\n            .optional(),\n          email: z\n            .string()\n            .describe(\"Contact's email address.\")\n            .email()\n            .optional()\n            .nullable(),\n          displayName: z\n            .string()\n            .describe(\n              \"Contact's first and last name. If no name is provided, uses contact's email.\"\n            )\n            .optional()\n            .nullable(),\n        })\n        .describe('Contact information.')\n        .optional(),\n      pointsExpiration: z\n        .object({\n          expirationDate: z\n            .date()\n            .describe('Date and time at which points are expiring.')\n            .optional()\n            .nullable(),\n          expiringPointsAmount: z\n            .number()\n            .int()\n            .describe('Amount of points that are going to expire at that date.')\n            .optional(),\n        })\n        .describe('Points expiration information.')\n        .optional(),\n    })\n    .describe('Updated loyalty account.')\n    .optional(),\n  transactionId: z\n    .string()\n    .describe('Transaction ID associated with the points earned.')\n    .regex(\n      /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n      'Must be a valid GUID'\n    )\n    .optional(),\n});\nexport const AdjustPointsRequest = z.object({\n  accountId: z\n    .string()\n    .describe('Loyalty account ID.')\n    .regex(\n      /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n      'Must be a valid GUID'\n    ),\n  options: z\n    .intersection(\n      z.object({\n        description: z\n          .string()\n          .describe(\n            'Description to explain the reason for the points adjustment.'\n          )\n          .min(1)\n          .max(100)\n          .optional()\n          .nullable(),\n        revision: z\n          .string()\n          .regex(/^\\d+$/, 'Must be a valid UInt64 string')\n          .describe(\n            \"Each time the loyalty account is updated, `revision` increments by 1.\\n\\nThe current `revision` must be passed when adjusting points in the loyalty account. This\\nensures you're working with the latest version of the loyalty account and prevents unintended overwrites.\"\n          )\n          .optional(),\n      }),\n      z.xor([\n        z.object({\n          balance: z.never().optional(),\n          amount: z.never().optional(),\n        }),\n        z.object({\n          amount: z.never().optional(),\n          balance: z\n            .number()\n            .int()\n            .describe(\n              \"Sets the account's point balance to this amount. Must be a positive, whole number or zero.\\n\\nThe net difference between this new balance and the previous balance will be reflected in the `adjusted` field of the customer's account.\\n\\nMin: `0`\\n\\nMax: `999999999`\"\n            )\n            .min(0)\n            .max(999999999),\n        }),\n        z.object({\n          balance: z.never().optional(),\n          amount: z\n            .number()\n            .int()\n            .describe(\n              \"Adjusts the account's point balance by this amount. Must be a whole number with a maximum of 7 digits.\\nThe amount can be negative, but cannot be `0`.\\n\\nMin: `-9999999`\\n\\nMax: `9999999`\"\n            )\n            .min(-9999999)\n            .max(9999999),\n        }),\n      ])\n    )\n    .describe('Options to use when adjusting points.')\n    .optional(),\n});\nexport const AdjustPointsResponse = z.object({\n  account: z\n    .object({\n      _id: z\n        .string()\n        .describe('Account ID.')\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional(),\n      contactId: z\n        .string()\n        .describe(\n          \"Account owner's contact ID. See the Contacts API to learn more about a site's contacts.\"\n        )\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional(),\n      memberId: z\n        .string()\n        .describe(\n          \"Member ID of the account owner. See the Members API to learn more about a site's members.\"\n        )\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional()\n        .nullable(),\n      points: z\n        .object({\n          balance: z\n            .number()\n            .int()\n            .describe(\n              'Current points balance.\\n\\nEqual to the sum of `earned` and `adjusted` points, minus `redeemed` points.'\n            )\n            .min(0)\n            .optional(),\n          earned: z\n            .number()\n            .int()\n            .describe('Total earned points.')\n            .min(0)\n            .optional(),\n          adjusted: z\n            .number()\n            .int()\n            .describe('Total adjusted points.')\n            .min(0)\n            .optional(),\n          redeemed: z\n            .number()\n            .int()\n            .describe('Total redeemed points.')\n            .min(0)\n            .optional(),\n          expired: z\n            .number()\n            .int()\n            .describe('Total expired points.')\n            .min(0)\n            .optional(),\n        })\n        .describe(\"Details of the account's point totals.\")\n        .optional(),\n      rewardAvailable: z\n        .boolean()\n        .describe(\n          'Whether the account has enough points in `points.balance` to redeem for a reward.'\n        )\n        .optional(),\n      _createdDate: z\n        .date()\n        .describe('Date and time the account was created.')\n        .optional()\n        .nullable(),\n      _updatedDate: z\n        .date()\n        .describe('Date and time the account was last updated.')\n        .optional()\n        .nullable(),\n      lastActivityDate: z\n        .date()\n        .describe(\"Date and time of the account's last activity.\")\n        .optional()\n        .nullable(),\n      revision: z\n        .string()\n        .regex(/^\\d+$/, 'Must be a valid UInt64 string')\n        .describe(\n          'Revision number, which increments by 1 each time the loyalty account is updated.\\n\\nTo prevent conflicting changes, the current `revision` must be passed when updating the loyalty account.\\n\\nIgnored when creating an account.'\n        )\n        .optional(),\n      tier: z\n        .object({\n          _id: z\n            .string()\n            .describe(\n              'Tier ID.\\n\\nThis field will not be returned if the account belongs to the base tier.'\n            )\n            .regex(\n              /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n              'Must be a valid GUID'\n            )\n            .optional()\n            .nullable(),\n          _updatedDate: z\n            .date()\n            .describe(\n              'Date and time the tier information was last recalculated.'\n            )\n            .optional()\n            .nullable(),\n          points: z\n            .number()\n            .int()\n            .describe(\n              \"Points earned and adjusted over the tier's current rolling window.\"\n            )\n            .min(0)\n            .optional(),\n        })\n        .describe(\n          'Tier information.\\n\\nSee the Tiers API for more information.'\n        )\n        .optional(),\n      contact: z\n        .object({\n          _id: z\n            .string()\n            .describe('Contact ID.')\n            .regex(\n              /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n              'Must be a valid GUID'\n            )\n            .optional()\n            .nullable(),\n          name: z\n            .string()\n            .describe(\"Contact's first and last name.\")\n            .optional()\n            .nullable(),\n          picture: z\n            .object({\n              _id: z.string().describe('WixMedia image ID.').optional(),\n              url: z.string().describe('Image URL.').optional(),\n              height: z\n                .number()\n                .int()\n                .describe('Original image height.')\n                .optional(),\n              width: z\n                .number()\n                .int()\n                .describe('Original image width.')\n                .optional(),\n            })\n            .describe(\"Contact's profile picture.\")\n            .optional(),\n          email: z\n            .string()\n            .describe(\"Contact's email address.\")\n            .email()\n            .optional()\n            .nullable(),\n          displayName: z\n            .string()\n            .describe(\n              \"Contact's first and last name. If no name is provided, uses contact's email.\"\n            )\n            .optional()\n            .nullable(),\n        })\n        .describe('Contact information.')\n        .optional(),\n      pointsExpiration: z\n        .object({\n          expirationDate: z\n            .date()\n            .describe('Date and time at which points are expiring.')\n            .optional()\n            .nullable(),\n          expiringPointsAmount: z\n            .number()\n            .int()\n            .describe('Amount of points that are going to expire at that date.')\n            .optional(),\n        })\n        .describe('Points expiration information.')\n        .optional(),\n    })\n    .describe('Loyalty account.')\n    .optional(),\n  transactionId: z\n    .string()\n    .describe('Transaction ID associated with the points adjustment.')\n    .regex(\n      /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n      'Must be a valid GUID'\n    )\n    .optional(),\n});\nexport const GetAccountRequest = z.object({\n  _id: z\n    .string()\n    .describe('ID of the account to retrieve.')\n    .regex(\n      /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n      'Must be a valid GUID'\n    ),\n});\nexport const GetAccountResponse = z.object({\n  _id: z\n    .string()\n    .describe('Account ID.')\n    .regex(\n      /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n      'Must be a valid GUID'\n    )\n    .optional(),\n  contactId: z\n    .string()\n    .describe(\n      \"Account owner's contact ID. See the Contacts API to learn more about a site's contacts.\"\n    )\n    .regex(\n      /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n      'Must be a valid GUID'\n    )\n    .optional(),\n  memberId: z\n    .string()\n    .describe(\n      \"Member ID of the account owner. See the Members API to learn more about a site's members.\"\n    )\n    .regex(\n      /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n      'Must be a valid GUID'\n    )\n    .optional()\n    .nullable(),\n  points: z\n    .object({\n      balance: z\n        .number()\n        .int()\n        .describe(\n          'Current points balance.\\n\\nEqual to the sum of `earned` and `adjusted` points, minus `redeemed` points.'\n        )\n        .min(0)\n        .optional(),\n      earned: z\n        .number()\n        .int()\n        .describe('Total earned points.')\n        .min(0)\n        .optional(),\n      adjusted: z\n        .number()\n        .int()\n        .describe('Total adjusted points.')\n        .min(0)\n        .optional(),\n      redeemed: z\n        .number()\n        .int()\n        .describe('Total redeemed points.')\n        .min(0)\n        .optional(),\n      expired: z\n        .number()\n        .int()\n        .describe('Total expired points.')\n        .min(0)\n        .optional(),\n    })\n    .describe(\"Details of the account's point totals.\")\n    .optional(),\n  rewardAvailable: z\n    .boolean()\n    .describe(\n      'Whether the account has enough points in `points.balance` to redeem for a reward.'\n    )\n    .optional(),\n  _createdDate: z\n    .date()\n    .describe('Date and time the account was created.')\n    .optional()\n    .nullable(),\n  _updatedDate: z\n    .date()\n    .describe('Date and time the account was last updated.')\n    .optional()\n    .nullable(),\n  lastActivityDate: z\n    .date()\n    .describe(\"Date and time of the account's last activity.\")\n    .optional()\n    .nullable(),\n  revision: z\n    .string()\n    .regex(/^\\d+$/, 'Must be a valid UInt64 string')\n    .describe(\n      'Revision number, which increments by 1 each time the loyalty account is updated.\\n\\nTo prevent conflicting changes, the current `revision` must be passed when updating the loyalty account.\\n\\nIgnored when creating an account.'\n    )\n    .optional(),\n  tier: z\n    .object({\n      _id: z\n        .string()\n        .describe(\n          'Tier ID.\\n\\nThis field will not be returned if the account belongs to the base tier.'\n        )\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional()\n        .nullable(),\n      _updatedDate: z\n        .date()\n        .describe('Date and time the tier information was last recalculated.')\n        .optional()\n        .nullable(),\n      points: z\n        .number()\n        .int()\n        .describe(\n          \"Points earned and adjusted over the tier's current rolling window.\"\n        )\n        .min(0)\n        .optional(),\n    })\n    .describe('Tier information.\\n\\nSee the Tiers API for more information.')\n    .optional(),\n  contact: z\n    .object({\n      _id: z\n        .string()\n        .describe('Contact ID.')\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional()\n        .nullable(),\n      name: z\n        .string()\n        .describe(\"Contact's first and last name.\")\n        .optional()\n        .nullable(),\n      picture: z\n        .object({\n          _id: z.string().describe('WixMedia image ID.').optional(),\n          url: z.string().describe('Image URL.').optional(),\n          height: z\n            .number()\n            .int()\n            .describe('Original image height.')\n            .optional(),\n          width: z.number().int().describe('Original image width.').optional(),\n        })\n        .describe(\"Contact's profile picture.\")\n        .optional(),\n      email: z\n        .string()\n        .describe(\"Contact's email address.\")\n        .email()\n        .optional()\n        .nullable(),\n      displayName: z\n        .string()\n        .describe(\n          \"Contact's first and last name. If no name is provided, uses contact's email.\"\n        )\n        .optional()\n        .nullable(),\n    })\n    .describe('Contact information.')\n    .optional(),\n  pointsExpiration: z\n    .object({\n      expirationDate: z\n        .date()\n        .describe('Date and time at which points are expiring.')\n        .optional()\n        .nullable(),\n      expiringPointsAmount: z\n        .number()\n        .int()\n        .describe('Amount of points that are going to expire at that date.')\n        .optional(),\n    })\n    .describe('Points expiration information.')\n    .optional(),\n});\nexport const QueryLoyaltyAccountsRequest = z.object({\n  query: z\n    .object({\n      filter: z\n        .object({\n          _id: z\n            .object({\n              $eq: z.string(),\n              $exists: z.boolean(),\n              $gt: z.string(),\n              $gte: z.string(),\n              $hasAll: z.array(z.string()),\n              $hasSome: z.array(z.string()),\n              $in: z.array(z.string()),\n              $lt: z.string(),\n              $lte: z.string(),\n              $ne: z.string(),\n              $nin: z.array(z.string()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          contactId: z\n            .object({\n              $eq: z.string(),\n              $exists: z.boolean(),\n              $gt: z.string(),\n              $gte: z.string(),\n              $hasAll: z.array(z.string()),\n              $hasSome: z.array(z.string()),\n              $in: z.array(z.string()),\n              $lt: z.string(),\n              $lte: z.string(),\n              $ne: z.string(),\n              $nin: z.array(z.string()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          memberId: z\n            .object({\n              $eq: z.string(),\n              $exists: z.boolean(),\n              $gt: z.string(),\n              $gte: z.string(),\n              $hasAll: z.array(z.string()),\n              $hasSome: z.array(z.string()),\n              $in: z.array(z.string()),\n              $lt: z.string(),\n              $lte: z.string(),\n              $ne: z.string(),\n              $nin: z.array(z.string()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          'points.balance': z\n            .object({\n              $eq: z.number(),\n              $exists: z.boolean(),\n              $gt: z.number(),\n              $gte: z.number(),\n              $hasAll: z.array(z.number()),\n              $hasSome: z.array(z.number()),\n              $in: z.array(z.number()),\n              $lt: z.number(),\n              $lte: z.number(),\n              $ne: z.number(),\n              $nin: z.array(z.number()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          'points.earned': z\n            .object({\n              $eq: z.number(),\n              $exists: z.boolean(),\n              $gt: z.number(),\n              $gte: z.number(),\n              $hasAll: z.array(z.number()),\n              $hasSome: z.array(z.number()),\n              $in: z.array(z.number()),\n              $lt: z.number(),\n              $lte: z.number(),\n              $ne: z.number(),\n              $nin: z.array(z.number()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          'points.adjusted': z\n            .object({\n              $eq: z.number(),\n              $exists: z.boolean(),\n              $gt: z.number(),\n              $gte: z.number(),\n              $hasAll: z.array(z.number()),\n              $hasSome: z.array(z.number()),\n              $in: z.array(z.number()),\n              $lt: z.number(),\n              $lte: z.number(),\n              $ne: z.number(),\n              $nin: z.array(z.number()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          'points.redeemed': z\n            .object({\n              $eq: z.number(),\n              $exists: z.boolean(),\n              $gt: z.number(),\n              $gte: z.number(),\n              $hasAll: z.array(z.number()),\n              $hasSome: z.array(z.number()),\n              $in: z.array(z.number()),\n              $lt: z.number(),\n              $lte: z.number(),\n              $ne: z.number(),\n              $nin: z.array(z.number()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          'points.expired': z\n            .object({\n              $eq: z.number(),\n              $exists: z.boolean(),\n              $gt: z.number(),\n              $gte: z.number(),\n              $hasAll: z.array(z.number()),\n              $hasSome: z.array(z.number()),\n              $in: z.array(z.number()),\n              $lt: z.number(),\n              $lte: z.number(),\n              $ne: z.number(),\n              $nin: z.array(z.number()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          _createdDate: z\n            .object({\n              $eq: z.string(),\n              $exists: z.boolean(),\n              $gt: z.string(),\n              $gte: z.string(),\n              $hasAll: z.array(z.string()),\n              $hasSome: z.array(z.string()),\n              $in: z.array(z.string()),\n              $lt: z.string(),\n              $lte: z.string(),\n              $ne: z.string(),\n              $nin: z.array(z.string()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          lastActivityDate: z\n            .object({\n              $eq: z.string(),\n              $exists: z.boolean(),\n              $gt: z.string(),\n              $gte: z.string(),\n              $hasAll: z.array(z.string()),\n              $hasSome: z.array(z.string()),\n              $in: z.array(z.string()),\n              $lt: z.string(),\n              $lte: z.string(),\n              $ne: z.string(),\n              $nin: z.array(z.string()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          'tier._id': z\n            .object({\n              $eq: z.string(),\n              $exists: z.boolean(),\n              $gt: z.string(),\n              $gte: z.string(),\n              $hasAll: z.array(z.string()),\n              $hasSome: z.array(z.string()),\n              $in: z.array(z.string()),\n              $lt: z.string(),\n              $lte: z.string(),\n              $ne: z.string(),\n              $nin: z.array(z.string()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          'pointsExpiration.expirationDate': z\n            .object({\n              $eq: z.string(),\n              $exists: z.boolean(),\n              $gt: z.string(),\n              $gte: z.string(),\n              $hasAll: z.array(z.string()),\n              $hasSome: z.array(z.string()),\n              $in: z.array(z.string()),\n              $lt: z.string(),\n              $lte: z.string(),\n              $ne: z.string(),\n              $nin: z.array(z.string()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          'pointsExpiration.expiringPointsAmount': z\n            .object({\n              $eq: z.number(),\n              $exists: z.boolean(),\n              $gt: z.number(),\n              $gte: z.number(),\n              $hasAll: z.array(z.number()),\n              $hasSome: z.array(z.number()),\n              $in: z.array(z.number()),\n              $lt: z.number(),\n              $lte: z.number(),\n              $ne: z.number(),\n              $nin: z.array(z.number()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          $and: z.array(z.any()).optional(),\n          $or: z.array(z.any()).optional(),\n          $not: z.any().optional(),\n        })\n        .strict()\n        .optional(),\n      sort: z\n        .array(\n          z.object({\n            fieldName: z\n              .enum([\n                '_id',\n                'contactId',\n                'memberId',\n                'points.balance',\n                'points.earned',\n                'points.adjusted',\n                'points.redeemed',\n                'points.expired',\n                '_createdDate',\n                'lastActivityDate',\n                'tier._id',\n                'pointsExpiration.expirationDate',\n                'pointsExpiration.expiringPointsAmount',\n              ])\n              .optional(),\n            order: z.enum(['ASC', 'DESC']).optional(),\n          })\n        )\n        .optional(),\n    })\n    .catchall(z.any())\n    .describe(\n      'Filter object.\\nSee [API Query Language](https://dev.wix.com/docs/rest/articles/get-started/api-query-language) for more information.'\n    ),\n});\nexport const QueryLoyaltyAccountsResponse = z.object({\n  loyaltyAccounts: z\n    .array(\n      z.object({\n        _id: z\n          .string()\n          .describe('Account ID.')\n          .regex(\n            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n            'Must be a valid GUID'\n          )\n          .optional(),\n        contactId: z\n          .string()\n          .describe(\n            \"Account owner's contact ID. See the Contacts API to learn more about a site's contacts.\"\n          )\n          .regex(\n            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n            'Must be a valid GUID'\n          )\n          .optional(),\n        memberId: z\n          .string()\n          .describe(\n            \"Member ID of the account owner. See the Members API to learn more about a site's members.\"\n          )\n          .regex(\n            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n            'Must be a valid GUID'\n          )\n          .optional()\n          .nullable(),\n        points: z\n          .object({\n            balance: z\n              .number()\n              .int()\n              .describe(\n                'Current points balance.\\n\\nEqual to the sum of `earned` and `adjusted` points, minus `redeemed` points.'\n              )\n              .min(0)\n              .optional(),\n            earned: z\n              .number()\n              .int()\n              .describe('Total earned points.')\n              .min(0)\n              .optional(),\n            adjusted: z\n              .number()\n              .int()\n              .describe('Total adjusted points.')\n              .min(0)\n              .optional(),\n            redeemed: z\n              .number()\n              .int()\n              .describe('Total redeemed points.')\n              .min(0)\n              .optional(),\n            expired: z\n              .number()\n              .int()\n              .describe('Total expired points.')\n              .min(0)\n              .optional(),\n          })\n          .describe(\"Details of the account's point totals.\")\n          .optional(),\n        rewardAvailable: z\n          .boolean()\n          .describe(\n            'Whether the account has enough points in `points.balance` to redeem for a reward.'\n          )\n          .optional(),\n        _createdDate: z\n          .date()\n          .describe('Date and time the account was created.')\n          .optional()\n          .nullable(),\n        _updatedDate: z\n          .date()\n          .describe('Date and time the account was last updated.')\n          .optional()\n          .nullable(),\n        lastActivityDate: z\n          .date()\n          .describe(\"Date and time of the account's last activity.\")\n          .optional()\n          .nullable(),\n        revision: z\n          .string()\n          .regex(/^\\d+$/, 'Must be a valid UInt64 string')\n          .describe(\n            'Revision number, which increments by 1 each time the loyalty account is updated.\\n\\nTo prevent conflicting changes, the current `revision` must be passed when updating the loyalty account.\\n\\nIgnored when creating an account.'\n          )\n          .optional(),\n        tier: z\n          .object({\n            _id: z\n              .string()\n              .describe(\n                'Tier ID.\\n\\nThis field will not be returned if the account belongs to the base tier.'\n              )\n              .regex(\n                /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n                'Must be a valid GUID'\n              )\n              .optional()\n              .nullable(),\n            _updatedDate: z\n              .date()\n              .describe(\n                'Date and time the tier information was last recalculated.'\n              )\n              .optional()\n              .nullable(),\n            points: z\n              .number()\n              .int()\n              .describe(\n                \"Points earned and adjusted over the tier's current rolling window.\"\n              )\n              .min(0)\n              .optional(),\n          })\n          .describe(\n            'Tier information.\\n\\nSee the Tiers API for more information.'\n          )\n          .optional(),\n        contact: z\n          .object({\n            _id: z\n              .string()\n              .describe('Contact ID.')\n              .regex(\n                /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n                'Must be a valid GUID'\n              )\n              .optional()\n              .nullable(),\n            name: z\n              .string()\n              .describe(\"Contact's first and last name.\")\n              .optional()\n              .nullable(),\n            picture: z\n              .object({\n                _id: z.string().describe('WixMedia image ID.').optional(),\n                url: z.string().describe('Image URL.').optional(),\n                height: z\n                  .number()\n                  .int()\n                  .describe('Original image height.')\n                  .optional(),\n                width: z\n                  .number()\n                  .int()\n                  .describe('Original image width.')\n                  .optional(),\n              })\n              .describe(\"Contact's profile picture.\")\n              .optional(),\n            email: z\n              .string()\n              .describe(\"Contact's email address.\")\n              .email()\n              .optional()\n              .nullable(),\n            displayName: z\n              .string()\n              .describe(\n                \"Contact's first and last name. If no name is provided, uses contact's email.\"\n              )\n              .optional()\n              .nullable(),\n          })\n          .describe('Contact information.')\n          .optional(),\n        pointsExpiration: z\n          .object({\n            expirationDate: z\n              .date()\n              .describe('Date and time at which points are expiring.')\n              .optional()\n              .nullable(),\n            expiringPointsAmount: z\n              .number()\n              .int()\n              .describe(\n                'Amount of points that are going to expire at that date.'\n              )\n              .optional(),\n          })\n          .describe('Points expiration information.')\n          .optional(),\n      })\n    )\n    .optional(),\n  pagingMetadata: z\n    .object({\n      count: z\n        .number()\n        .int()\n        .describe('Number of items returned in current page.')\n        .optional()\n        .nullable(),\n      cursors: z\n        .object({\n          next: z\n            .string()\n            .describe(\n              'Cursor string pointing to the next page in the list of results.'\n            )\n            .max(16000)\n            .optional()\n            .nullable(),\n          prev: z\n            .string()\n            .describe(\n              'Cursor pointing to the previous page in the list of results.'\n            )\n            .max(16000)\n            .optional()\n            .nullable(),\n        })\n        .describe(\n          'Cursor strings that point to the next page, previous page, or both.'\n        )\n        .optional(),\n      hasNext: z\n        .boolean()\n        .describe(\n          'Whether there are more pages to retrieve following the current page.\\n\\n+ `true`: Another page of results can be retrieved.\\n+ `false`: This is the last page.'\n        )\n        .optional()\n        .nullable(),\n    })\n    .describe('Paging metadata')\n    .optional(),\n});\nexport const GetProgramTotalsRequest = z.object({});\nexport const GetProgramTotalsResponse = z.object({\n  points: z\n    .object({\n      balance: z\n        .number()\n        .int()\n        .describe(\n          'Current points balance.\\n\\nEqual to the sum of `earned` and `adjusted` points, minus `redeemed` points.'\n        )\n        .min(0)\n        .optional(),\n      earned: z\n        .number()\n        .int()\n        .describe('Total earned points.')\n        .min(0)\n        .optional(),\n      adjusted: z\n        .number()\n        .int()\n        .describe('Total adjusted points.')\n        .min(0)\n        .optional(),\n      redeemed: z\n        .number()\n        .int()\n        .describe('Total redeemed points.')\n        .min(0)\n        .optional(),\n      expired: z\n        .number()\n        .int()\n        .describe('Total expired points.')\n        .min(0)\n        .optional(),\n    })\n    .describe('Point totals for the entire program.')\n    .optional(),\n  tierTotals: z\n    .array(\n      z.object({\n        _id: z\n          .string()\n          .describe(\n            'Tier ID. If no Tier ID is provided, the ID is `null`.\\nSee the base tier in the Tiers API for more information.'\n          )\n          .regex(\n            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n            'Must be a valid GUID'\n          )\n          .optional()\n          .nullable(),\n        numberOfAccounts: z\n          .number()\n          .int()\n          .describe(\n            'Total number of loyalty account that belong to a particular tier.'\n          )\n          .min(0)\n          .optional(),\n      })\n    )\n    .optional(),\n});\nexport const GetCurrentMemberAccountRequest = z.object({});\nexport const GetCurrentMemberAccountResponse = z.object({\n  account: z\n    .object({\n      _id: z\n        .string()\n        .describe('Account ID.')\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional(),\n      contactId: z\n        .string()\n        .describe(\n          \"Account owner's contact ID. See the Contacts API to learn more about a site's contacts.\"\n        )\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional(),\n      memberId: z\n        .string()\n        .describe(\n          \"Member ID of the account owner. See the Members API to learn more about a site's members.\"\n        )\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional()\n        .nullable(),\n      points: z\n        .object({\n          balance: z\n            .number()\n            .int()\n            .describe(\n              'Current points balance.\\n\\nEqual to the sum of `earned` and `adjusted` points, minus `redeemed` points.'\n            )\n            .min(0)\n            .optional(),\n          earned: z\n            .number()\n            .int()\n            .describe('Total earned points.')\n            .min(0)\n            .optional(),\n          adjusted: z\n            .number()\n            .int()\n            .describe('Total adjusted points.')\n            .min(0)\n            .optional(),\n          redeemed: z\n            .number()\n            .int()\n            .describe('Total redeemed points.')\n            .min(0)\n            .optional(),\n          expired: z\n            .number()\n            .int()\n            .describe('Total expired points.')\n            .min(0)\n            .optional(),\n        })\n        .describe(\"Details of the account's point totals.\")\n        .optional(),\n      rewardAvailable: z\n        .boolean()\n        .describe(\n          'Whether the account has enough points in `points.balance` to redeem for a reward.'\n        )\n        .optional(),\n      _createdDate: z\n        .date()\n        .describe('Date and time the account was created.')\n        .optional()\n        .nullable(),\n      _updatedDate: z\n        .date()\n        .describe('Date and time the account was last updated.')\n        .optional()\n        .nullable(),\n      lastActivityDate: z\n        .date()\n        .describe(\"Date and time of the account's last activity.\")\n        .optional()\n        .nullable(),\n      revision: z\n        .string()\n        .regex(/^\\d+$/, 'Must be a valid UInt64 string')\n        .describe(\n          'Revision number, which increments by 1 each time the loyalty account is updated.\\n\\nTo prevent conflicting changes, the current `revision` must be passed when updating the loyalty account.\\n\\nIgnored when creating an account.'\n        )\n        .optional(),\n      tier: z\n        .object({\n          _id: z\n            .string()\n            .describe(\n              'Tier ID.\\n\\nThis field will not be returned if the account belongs to the base tier.'\n            )\n            .regex(\n              /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n              'Must be a valid GUID'\n            )\n            .optional()\n            .nullable(),\n          _updatedDate: z\n            .date()\n            .describe(\n              'Date and time the tier information was last recalculated.'\n            )\n            .optional()\n            .nullable(),\n          points: z\n            .number()\n            .int()\n            .describe(\n              \"Points earned and adjusted over the tier's current rolling window.\"\n            )\n            .min(0)\n            .optional(),\n        })\n        .describe(\n          'Tier information.\\n\\nSee the Tiers API for more information.'\n        )\n        .optional(),\n      contact: z\n        .object({\n          _id: z\n            .string()\n            .describe('Contact ID.')\n            .regex(\n              /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n              'Must be a valid GUID'\n            )\n            .optional()\n            .nullable(),\n          name: z\n            .string()\n            .describe(\"Contact's first and last name.\")\n            .optional()\n            .nullable(),\n          picture: z\n            .object({\n              _id: z.string().describe('WixMedia image ID.').optional(),\n              url: z.string().describe('Image URL.').optional(),\n              height: z\n                .number()\n                .int()\n                .describe('Original image height.')\n                .optional(),\n              width: z\n                .number()\n                .int()\n                .describe('Original image width.')\n                .optional(),\n            })\n            .describe(\"Contact's profile picture.\")\n            .optional(),\n          email: z\n            .string()\n            .describe(\"Contact's email address.\")\n            .email()\n            .optional()\n            .nullable(),\n          displayName: z\n            .string()\n            .describe(\n              \"Contact's first and last name. If no name is provided, uses contact's email.\"\n            )\n            .optional()\n            .nullable(),\n        })\n        .describe('Contact information.')\n        .optional(),\n      pointsExpiration: z\n        .object({\n          expirationDate: z\n            .date()\n            .describe('Date and time at which points are expiring.')\n            .optional()\n            .nullable(),\n          expiringPointsAmount: z\n            .number()\n            .int()\n            .describe('Amount of points that are going to expire at that date.')\n            .optional(),\n        })\n        .describe('Points expiration information.')\n        .optional(),\n    })\n    .describe('Loyalty account.')\n    .optional(),\n});\nexport const GetAccountBySecondaryIdRequest = z.object({\n  options: z\n    .intersection(\n      z.object({}),\n      z.xor([\n        z.object({\n          contactId: z.never().optional(),\n          memberId: z.never().optional(),\n        }),\n        z.object({\n          memberId: z.never().optional(),\n          contactId: z\n            .string()\n            .describe(\n              \"Account owner's contact ID. See the Contacts API for more information.\"\n            )\n            .max(50),\n        }),\n        z.object({\n          contactId: z.never().optional(),\n          memberId: z\n            .string()\n            .describe(\n              \"Account owner's member ID. See the Members API for more information.\"\n            )\n            .max(50),\n        }),\n      ])\n    )\n    .describe('ID of the customer to retrieve loyalty account for.'),\n});\nexport const GetAccountBySecondaryIdResponse = z.object({\n  account: z\n    .object({\n      _id: z\n        .string()\n        .describe('Account ID.')\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional(),\n      contactId: z\n        .string()\n        .describe(\n          \"Account owner's contact ID. See the Contacts API to learn more about a site's contacts.\"\n        )\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional(),\n      memberId: z\n        .string()\n        .describe(\n          \"Member ID of the account owner. See the Members API to learn more about a site's members.\"\n        )\n        .regex(\n          /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n          'Must be a valid GUID'\n        )\n        .optional()\n        .nullable(),\n      points: z\n        .object({\n          balance: z\n            .number()\n            .int()\n            .describe(\n              'Current points balance.\\n\\nEqual to the sum of `earned` and `adjusted` points, minus `redeemed` points.'\n            )\n            .min(0)\n            .optional(),\n          earned: z\n            .number()\n            .int()\n            .describe('Total earned points.')\n            .min(0)\n            .optional(),\n          adjusted: z\n            .number()\n            .int()\n            .describe('Total adjusted points.')\n            .min(0)\n            .optional(),\n          redeemed: z\n            .number()\n            .int()\n            .describe('Total redeemed points.')\n            .min(0)\n            .optional(),\n          expired: z\n            .number()\n            .int()\n            .describe('Total expired points.')\n            .min(0)\n            .optional(),\n        })\n        .describe(\"Details of the account's point totals.\")\n        .optional(),\n      rewardAvailable: z\n        .boolean()\n        .describe(\n          'Whether the account has enough points in `points.balance` to redeem for a reward.'\n        )\n        .optional(),\n      _createdDate: z\n        .date()\n        .describe('Date and time the account was created.')\n        .optional()\n        .nullable(),\n      _updatedDate: z\n        .date()\n        .describe('Date and time the account was last updated.')\n        .optional()\n        .nullable(),\n      lastActivityDate: z\n        .date()\n        .describe(\"Date and time of the account's last activity.\")\n        .optional()\n        .nullable(),\n      revision: z\n        .string()\n        .regex(/^\\d+$/, 'Must be a valid UInt64 string')\n        .describe(\n          'Revision number, which increments by 1 each time the loyalty account is updated.\\n\\nTo prevent conflicting changes, the current `revision` must be passed when updating the loyalty account.\\n\\nIgnored when creating an account.'\n        )\n        .optional(),\n      tier: z\n        .object({\n          _id: z\n            .string()\n            .describe(\n              'Tier ID.\\n\\nThis field will not be returned if the account belongs to the base tier.'\n            )\n            .regex(\n              /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n              'Must be a valid GUID'\n            )\n            .optional()\n            .nullable(),\n          _updatedDate: z\n            .date()\n            .describe(\n              'Date and time the tier information was last recalculated.'\n            )\n            .optional()\n            .nullable(),\n          points: z\n            .number()\n            .int()\n            .describe(\n              \"Points earned and adjusted over the tier's current rolling window.\"\n            )\n            .min(0)\n            .optional(),\n        })\n        .describe(\n          'Tier information.\\n\\nSee the Tiers API for more information.'\n        )\n        .optional(),\n      contact: z\n        .object({\n          _id: z\n            .string()\n            .describe('Contact ID.')\n            .regex(\n              /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n              'Must be a valid GUID'\n            )\n            .optional()\n            .nullable(),\n          name: z\n            .string()\n            .describe(\"Contact's first and last name.\")\n            .optional()\n            .nullable(),\n          picture: z\n            .object({\n              _id: z.string().describe('WixMedia image ID.').optional(),\n              url: z.string().describe('Image URL.').optional(),\n              height: z\n                .number()\n                .int()\n                .describe('Original image height.')\n                .optional(),\n              width: z\n                .number()\n                .int()\n                .describe('Original image width.')\n                .optional(),\n            })\n            .describe(\"Contact's profile picture.\")\n            .optional(),\n          email: z\n            .string()\n            .describe(\"Contact's email address.\")\n            .email()\n            .optional()\n            .nullable(),\n          displayName: z\n            .string()\n            .describe(\n              \"Contact's first and last name. If no name is provided, uses contact's email.\"\n            )\n            .optional()\n            .nullable(),\n        })\n        .describe('Contact information.')\n        .optional(),\n      pointsExpiration: z\n        .object({\n          expirationDate: z\n            .date()\n            .describe('Date and time at which points are expiring.')\n            .optional()\n            .nullable(),\n          expiringPointsAmount: z\n            .number()\n            .int()\n            .describe('Amount of points that are going to expire at that date.')\n            .optional(),\n        })\n        .describe('Points expiration information.')\n        .optional(),\n    })\n    .describe('Loyalty account.')\n    .optional(),\n});\nexport const ListAccountsRequest = z.object({\n  options: z\n    .object({\n      contactIds: z.array(z.string()).max(50).optional(),\n      cursorPaging: z\n        .object({\n          limit: z\n            .number()\n            .int()\n            .describe('Maximum number of items to return in the results.')\n            .min(0)\n            .max(100)\n            .optional()\n            .nullable(),\n          cursor: z\n            .string()\n            .describe(\n              \"Pointer to the next or previous page in the list of results.\\n\\nPass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\\nNot relevant for the first request.\"\n            )\n            .max(16000)\n            .optional()\n            .nullable(),\n        })\n        .describe('Pagination options.')\n        .optional(),\n    })\n    .describe('Options to use when retrieving a list of loyalty accounts.')\n    .optional(),\n});\nexport const ListAccountsResponse = z.object({\n  accounts: z\n    .array(\n      z.object({\n        _id: z\n          .string()\n          .describe('Account ID.')\n          .regex(\n            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n            'Must be a valid GUID'\n          )\n          .optional(),\n        contactId: z\n          .string()\n          .describe(\n            \"Account owner's contact ID. See the Contacts API to learn more about a site's contacts.\"\n          )\n          .regex(\n            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n            'Must be a valid GUID'\n          )\n          .optional(),\n        memberId: z\n          .string()\n          .describe(\n            \"Member ID of the account owner. See the Members API to learn more about a site's members.\"\n          )\n          .regex(\n            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n            'Must be a valid GUID'\n          )\n          .optional()\n          .nullable(),\n        points: z\n          .object({\n            balance: z\n              .number()\n              .int()\n              .describe(\n                'Current points balance.\\n\\nEqual to the sum of `earned` and `adjusted` points, minus `redeemed` points.'\n              )\n              .min(0)\n              .optional(),\n            earned: z\n              .number()\n              .int()\n              .describe('Total earned points.')\n              .min(0)\n              .optional(),\n            adjusted: z\n              .number()\n              .int()\n              .describe('Total adjusted points.')\n              .min(0)\n              .optional(),\n            redeemed: z\n              .number()\n              .int()\n              .describe('Total redeemed points.')\n              .min(0)\n              .optional(),\n            expired: z\n              .number()\n              .int()\n              .describe('Total expired points.')\n              .min(0)\n              .optional(),\n          })\n          .describe(\"Details of the account's point totals.\")\n          .optional(),\n        rewardAvailable: z\n          .boolean()\n          .describe(\n            'Whether the account has enough points in `points.balance` to redeem for a reward.'\n          )\n          .optional(),\n        _createdDate: z\n          .date()\n          .describe('Date and time the account was created.')\n          .optional()\n          .nullable(),\n        _updatedDate: z\n          .date()\n          .describe('Date and time the account was last updated.')\n          .optional()\n          .nullable(),\n        lastActivityDate: z\n          .date()\n          .describe(\"Date and time of the account's last activity.\")\n          .optional()\n          .nullable(),\n        revision: z\n          .string()\n          .regex(/^\\d+$/, 'Must be a valid UInt64 string')\n          .describe(\n            'Revision number, which increments by 1 each time the loyalty account is updated.\\n\\nTo prevent conflicting changes, the current `revision` must be passed when updating the loyalty account.\\n\\nIgnored when creating an account.'\n          )\n          .optional(),\n        tier: z\n          .object({\n            _id: z\n              .string()\n              .describe(\n                'Tier ID.\\n\\nThis field will not be returned if the account belongs to the base tier.'\n              )\n              .regex(\n                /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n                'Must be a valid GUID'\n              )\n              .optional()\n              .nullable(),\n            _updatedDate: z\n              .date()\n              .describe(\n                'Date and time the tier information was last recalculated.'\n              )\n              .optional()\n              .nullable(),\n            points: z\n              .number()\n              .int()\n              .describe(\n                \"Points earned and adjusted over the tier's current rolling window.\"\n              )\n              .min(0)\n              .optional(),\n          })\n          .describe(\n            'Tier information.\\n\\nSee the Tiers API for more information.'\n          )\n          .optional(),\n        contact: z\n          .object({\n            _id: z\n              .string()\n              .describe('Contact ID.')\n              .regex(\n                /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n                'Must be a valid GUID'\n              )\n              .optional()\n              .nullable(),\n            name: z\n              .string()\n              .describe(\"Contact's first and last name.\")\n              .optional()\n              .nullable(),\n            picture: z\n              .object({\n                _id: z.string().describe('WixMedia image ID.').optional(),\n                url: z.string().describe('Image URL.').optional(),\n                height: z\n                  .number()\n                  .int()\n                  .describe('Original image height.')\n                  .optional(),\n                width: z\n                  .number()\n                  .int()\n                  .describe('Original image width.')\n                  .optional(),\n              })\n              .describe(\"Contact's profile picture.\")\n              .optional(),\n            email: z\n              .string()\n              .describe(\"Contact's email address.\")\n              .email()\n              .optional()\n              .nullable(),\n            displayName: z\n              .string()\n              .describe(\n                \"Contact's first and last name. If no name is provided, uses contact's email.\"\n              )\n              .optional()\n              .nullable(),\n          })\n          .describe('Contact information.')\n          .optional(),\n        pointsExpiration: z\n          .object({\n            expirationDate: z\n              .date()\n              .describe('Date and time at which points are expiring.')\n              .optional()\n              .nullable(),\n            expiringPointsAmount: z\n              .number()\n              .int()\n              .describe(\n                'Amount of points that are going to expire at that date.'\n              )\n              .optional(),\n          })\n          .describe('Points expiration information.')\n          .optional(),\n      })\n    )\n    .optional(),\n  pagingMetadata: z\n    .object({\n      count: z\n        .number()\n        .int()\n        .describe('Number of items returned in the response.')\n        .optional()\n        .nullable(),\n      offset: z\n        .number()\n        .int()\n        .describe('Offset that was requested.')\n        .optional()\n        .nullable(),\n      total: z\n        .number()\n        .int()\n        .describe(\n          'Total number of items that match the query. Returned if offset paging is used and the `tooManyToCount` flag is not set.'\n        )\n        .optional()\n        .nullable(),\n      tooManyToCount: z\n        .boolean()\n        .describe(\n          'Flag that indicates the server failed to calculate the `total` field.'\n        )\n        .optional()\n        .nullable(),\n      cursors: z\n        .object({\n          next: z\n            .string()\n            .describe(\n              'Cursor string pointing to the next page in the list of results.'\n            )\n            .max(16000)\n            .optional()\n            .nullable(),\n          prev: z\n            .string()\n            .describe(\n              'Cursor pointing to the previous page in the list of results.'\n            )\n            .max(16000)\n            .optional()\n            .nullable(),\n        })\n        .describe(\n          'Cursors to navigate through the result pages using `next` and `prev`. Returned if cursor paging is used.'\n        )\n        .optional(),\n    })\n    .describe('Details on the paged set of results returned.')\n    .optional(),\n});\nexport const SearchAccountsRequest = z.object({\n  search: z\n    .object({\n      filter: z\n        .object({\n          'contact._id': z\n            .object({\n              $eq: z.string(),\n              $exists: z.boolean(),\n              $gt: z.string(),\n              $gte: z.string(),\n              $hasAll: z.array(z.string()),\n              $hasSome: z.array(z.string()),\n              $in: z.array(z.string()),\n              $lt: z.string(),\n              $lte: z.string(),\n              $ne: z.string(),\n              $nin: z.array(z.string()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          'contact.name': z\n            .object({\n              $eq: z.string(),\n              $exists: z.boolean(),\n              $gt: z.string(),\n              $gte: z.string(),\n              $hasAll: z.array(z.string()),\n              $hasSome: z.array(z.string()),\n              $in: z.array(z.string()),\n              $lt: z.string(),\n              $lte: z.string(),\n              $ne: z.string(),\n              $nin: z.array(z.string()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          'contact.email': z\n            .object({\n              $eq: z.string(),\n              $exists: z.boolean(),\n              $gt: z.string(),\n              $gte: z.string(),\n              $hasAll: z.array(z.string()),\n              $hasSome: z.array(z.string()),\n              $in: z.array(z.string()),\n              $lt: z.string(),\n              $lte: z.string(),\n              $ne: z.string(),\n              $nin: z.array(z.string()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          'contact.displayName': z\n            .object({\n              $eq: z.string(),\n              $exists: z.boolean(),\n              $gt: z.string(),\n              $gte: z.string(),\n              $hasAll: z.array(z.string()),\n              $hasSome: z.array(z.string()),\n              $in: z.array(z.string()),\n              $lt: z.string(),\n              $lte: z.string(),\n              $ne: z.string(),\n              $nin: z.array(z.string()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          'points.balance': z\n            .object({\n              $eq: z.number(),\n              $exists: z.boolean(),\n              $gt: z.number(),\n              $gte: z.number(),\n              $hasAll: z.array(z.number()),\n              $hasSome: z.array(z.number()),\n              $in: z.array(z.number()),\n              $lt: z.number(),\n              $lte: z.number(),\n              $ne: z.number(),\n              $nin: z.array(z.number()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          'points.redeemed': z\n            .object({\n              $eq: z.number(),\n              $exists: z.boolean(),\n              $gt: z.number(),\n              $gte: z.number(),\n              $hasAll: z.array(z.number()),\n              $hasSome: z.array(z.number()),\n              $in: z.array(z.number()),\n              $lt: z.number(),\n              $lte: z.number(),\n              $ne: z.number(),\n              $nin: z.array(z.number()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          _updatedDate: z\n            .object({\n              $eq: z.string(),\n              $exists: z.boolean(),\n              $gt: z.string(),\n              $gte: z.string(),\n              $hasAll: z.array(z.string()),\n              $hasSome: z.array(z.string()),\n              $in: z.array(z.string()),\n              $lt: z.string(),\n              $lte: z.string(),\n              $ne: z.string(),\n              $nin: z.array(z.string()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          lastActivityDate: z\n            .object({\n              $eq: z.string(),\n              $exists: z.boolean(),\n              $gt: z.string(),\n              $gte: z.string(),\n              $hasAll: z.array(z.string()),\n              $hasSome: z.array(z.string()),\n              $in: z.array(z.string()),\n              $lt: z.string(),\n              $lte: z.string(),\n              $ne: z.string(),\n              $nin: z.array(z.string()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          'pointsExpiration.expirationDate': z\n            .object({\n              $eq: z.string(),\n              $exists: z.boolean(),\n              $gt: z.string(),\n              $gte: z.string(),\n              $hasAll: z.array(z.string()),\n              $hasSome: z.array(z.string()),\n              $in: z.array(z.string()),\n              $lt: z.string(),\n              $lte: z.string(),\n              $ne: z.string(),\n              $nin: z.array(z.string()),\n              $startsWith: z.string(),\n            })\n            .partial()\n            .strict()\n            .optional(),\n          $and: z.array(z.any()).optional(),\n          $or: z.array(z.any()).optional(),\n          $not: z.any().optional(),\n        })\n        .strict()\n        .optional(),\n      sort: z\n        .array(\n          z.object({\n            fieldName: z\n              .enum([\n                'contact._id',\n                'contact.name',\n                'contact.email',\n                'contact.displayName',\n                'points.balance',\n                'points.redeemed',\n                '_updatedDate',\n                'lastActivityDate',\n                'pointsExpiration.expirationDate',\n              ])\n              .optional(),\n            order: z.enum(['ASC', 'DESC']).optional(),\n          })\n        )\n        .optional(),\n    })\n    .catchall(z.any())\n    .describe('Search options.'),\n});\nexport const SearchAccountsResponse = z.object({\n  accounts: z\n    .array(\n      z.object({\n        _id: z\n          .string()\n          .describe('Account ID.')\n          .regex(\n            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n            'Must be a valid GUID'\n          )\n          .optional(),\n        contactId: z\n          .string()\n          .describe(\n            \"Account owner's contact ID. See the Contacts API to learn more about a site's contacts.\"\n          )\n          .regex(\n            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n            'Must be a valid GUID'\n          )\n          .optional(),\n        memberId: z\n          .string()\n          .describe(\n            \"Member ID of the account owner. See the Members API to learn more about a site's members.\"\n          )\n          .regex(\n            /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n            'Must be a valid GUID'\n          )\n          .optional()\n          .nullable(),\n        points: z\n          .object({\n            balance: z\n              .number()\n              .int()\n              .describe(\n                'Current points balance.\\n\\nEqual to the sum of `earned` and `adjusted` points, minus `redeemed` points.'\n              )\n              .min(0)\n              .optional(),\n            earned: z\n              .number()\n              .int()\n              .describe('Total earned points.')\n              .min(0)\n              .optional(),\n            adjusted: z\n              .number()\n              .int()\n              .describe('Total adjusted points.')\n              .min(0)\n              .optional(),\n            redeemed: z\n              .number()\n              .int()\n              .describe('Total redeemed points.')\n              .min(0)\n              .optional(),\n            expired: z\n              .number()\n              .int()\n              .describe('Total expired points.')\n              .min(0)\n              .optional(),\n          })\n          .describe(\"Details of the account's point totals.\")\n          .optional(),\n        rewardAvailable: z\n          .boolean()\n          .describe(\n            'Whether the account has enough points in `points.balance` to redeem for a reward.'\n          )\n          .optional(),\n        _createdDate: z\n          .date()\n          .describe('Date and time the account was created.')\n          .optional()\n          .nullable(),\n        _updatedDate: z\n          .date()\n          .describe('Date and time the account was last updated.')\n          .optional()\n          .nullable(),\n        lastActivityDate: z\n          .date()\n          .describe(\"Date and time of the account's last activity.\")\n          .optional()\n          .nullable(),\n        revision: z\n          .string()\n          .regex(/^\\d+$/, 'Must be a valid UInt64 string')\n          .describe(\n            'Revision number, which increments by 1 each time the loyalty account is updated.\\n\\nTo prevent conflicting changes, the current `revision` must be passed when updating the loyalty account.\\n\\nIgnored when creating an account.'\n          )\n          .optional(),\n        tier: z\n          .object({\n            _id: z\n              .string()\n              .describe(\n                'Tier ID.\\n\\nThis field will not be returned if the account belongs to the base tier.'\n              )\n              .regex(\n                /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n                'Must be a valid GUID'\n              )\n              .optional()\n              .nullable(),\n            _updatedDate: z\n              .date()\n              .describe(\n                'Date and time the tier information was last recalculated.'\n              )\n              .optional()\n              .nullable(),\n            points: z\n              .number()\n              .int()\n              .describe(\n                \"Points earned and adjusted over the tier's current rolling window.\"\n              )\n              .min(0)\n              .optional(),\n          })\n          .describe(\n            'Tier information.\\n\\nSee the Tiers API for more information.'\n          )\n          .optional(),\n        contact: z\n          .object({\n            _id: z\n              .string()\n              .describe('Contact ID.')\n              .regex(\n                /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n                'Must be a valid GUID'\n              )\n              .optional()\n              .nullable(),\n            name: z\n              .string()\n              .describe(\"Contact's first and last name.\")\n              .optional()\n              .nullable(),\n            picture: z\n              .object({\n                _id: z.string().describe('WixMedia image ID.').optional(),\n                url: z.string().describe('Image URL.').optional(),\n                height: z\n                  .number()\n                  .int()\n                  .describe('Original image height.')\n                  .optional(),\n                width: z\n                  .number()\n                  .int()\n                  .describe('Original image width.')\n                  .optional(),\n              })\n              .describe(\"Contact's profile picture.\")\n              .optional(),\n            email: z\n              .string()\n              .describe(\"Contact's email address.\")\n              .email()\n              .optional()\n              .nullable(),\n            displayName: z\n              .string()\n              .describe(\n                \"Contact's first and last name. If no name is provided, uses contact's email.\"\n              )\n              .optional()\n              .nullable(),\n          })\n          .describe('Contact information.')\n          .optional(),\n        pointsExpiration: z\n          .object({\n            expirationDate: z\n              .date()\n              .describe('Date and time at which points are expiring.')\n              .optional()\n              .nullable(),\n            expiringPointsAmount: z\n              .number()\n              .int()\n              .describe(\n                'Amount of points that are going to expire at that date.'\n              )\n              .optional(),\n          })\n          .describe('Points expiration information.')\n          .optional(),\n      })\n    )\n    .optional(),\n  pagingMetadata: z\n    .object({\n      count: z\n        .number()\n        .int()\n        .describe('Number of items returned in current page.')\n        .optional()\n        .nullable(),\n      cursors: z\n        .object({\n          next: z\n            .string()\n            .describe(\n              'Cursor string pointing to the next page in the list of results.'\n            )\n            .max(16000)\n            .optional()\n            .nullable(),\n          prev: z\n            .string()\n            .describe(\n              'Cursor pointing to the previous page in the list of results.'\n            )\n            .max(16000)\n            .optional()\n            .nullable(),\n        })\n        .describe(\n          'Cursor strings that point to the next page, previous page, or both.'\n        )\n        .optional(),\n      hasNext: z\n        .boolean()\n        .describe(\n          'Whether there are more pages to retrieve following the current page.\\n\\n+ `true`: Another page of results can be retrieved.\\n+ `false`: This is the last page.'\n        )\n        .optional()\n        .nullable(),\n    })\n    .describe('Paging metadata.')\n    .optional(),\n  aggregationData: z\n    .object({\n      results: z\n        .array(\n          z.intersection(\n            z.object({\n              name: z\n                .string()\n                .describe(\n                  'Aggregation name, returned in `aggregations.results.name`.'\n                )\n                .max(100)\n                .optional(),\n              type: z\n                .enum(['VALUE', 'RANGE', 'SCALAR', 'DATE_HISTOGRAM', 'NESTED'])\n                .describe(\n                  'Aggregation type. Must align with the corresponding aggregation field.'\n                )\n                .optional(),\n              fieldPath: z\n                .string()\n                .describe(\n                  'Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.'\n                )\n                .max(200)\n                .optional(),\n            }),\n            z.xor([\n              z.object({\n                values: z.never().optional(),\n                ranges: z.never().optional(),\n                scalar: z.never().optional(),\n                groupedByValue: z.never().optional(),\n                dateHistogram: z.never().optional(),\n                nested: z.never().optional(),\n                scalarDate: z.never().optional(),\n              }),\n              z.object({\n                ranges: z.never().optional(),\n                scalar: z.never().optional(),\n                groupedByValue: z.never().optional(),\n                dateHistogram: z.never().optional(),\n                nested: z.never().optional(),\n                scalarDate: z.never().optional(),\n                values: z\n                  .object({\n                    results: z\n                      .array(\n                        z.object({\n                          value: z\n                            .string()\n                            .describe('Value of the field.')\n                            .max(100)\n                            .optional(),\n                          count: z\n                            .number()\n                            .int()\n                            .describe('Number of entities with this value.')\n                            .optional(),\n                        })\n                      )\n                      .max(250)\n                      .optional(),\n                  })\n                  .describe('Value aggregation results.'),\n              }),\n              z.object({\n                values: z.never().optional(),\n                scalar: z.never().optional(),\n                groupedByValue: z.never().optional(),\n                dateHistogram: z.never().optional(),\n                nested: z.never().optional(),\n                scalarDate: z.never().optional(),\n                ranges: z\n                  .object({\n                    results: z\n                      .array(\n                        z.object({\n                          from: z\n                            .number()\n                            .describe('Inclusive lower bound of the range.')\n                            .optional()\n                            .nullable(),\n                          to: z\n                            .number()\n                            .describe('Exclusive upper bound of the range.')\n                            .optional()\n                            .nullable(),\n                          count: z\n                            .number()\n                            .int()\n                            .describe('Total number of entities in this range.')\n                            .optional(),\n                        })\n                      )\n                      .max(50)\n                      .optional(),\n                  })\n                  .describe('Range aggregation results.'),\n              }),\n              z.object({\n                values: z.never().optional(),\n                ranges: z.never().optional(),\n                groupedByValue: z.never().optional(),\n                dateHistogram: z.never().optional(),\n                nested: z.never().optional(),\n                scalarDate: z.never().optional(),\n                scalar: z\n                  .object({\n                    type: z\n                      .enum(['COUNT_DISTINCT', 'MIN', 'MAX'])\n                      .describe('Type of scalar aggregation.')\n                      .optional(),\n                    value: z\n                      .number()\n                      .describe('Value of the scalar aggregation.')\n                      .optional(),\n                  })\n                  .describe('Scalar aggregation results.'),\n              }),\n              z.object({\n                values: z.never().optional(),\n                ranges: z.never().optional(),\n                scalar: z.never().optional(),\n                dateHistogram: z.never().optional(),\n                nested: z.never().optional(),\n                scalarDate: z.never().optional(),\n                groupedByValue: z\n                  .object({\n                    results: z\n                      .array(\n                        z.object({\n                          value: z\n                            .string()\n                            .describe('Value of the field.')\n                            .max(1000)\n                            .optional(),\n                          nestedResults: z\n                            .intersection(\n                              z.object({\n                                name: z\n                                  .string()\n                                  .describe(\n                                    'Unique, caller-defined aggregation name, identifiable by the requested aggregation `name`.'\n                                  )\n                                  .max(100)\n                                  .optional(),\n                                type: z\n                                  .enum([\n                                    'VALUE',\n                                    'RANGE',\n                                    'SCALAR',\n                                    'DATE_HISTOGRAM',\n                                    'NESTED',\n                                  ])\n                                  .describe('Aggregation type.')\n                                  .optional(),\n                                fieldPath: z\n                                  .string()\n                                  .describe(\n                                    'Field which the data was aggregated by.'\n                                  )\n                                  .max(200)\n                                  .optional(),\n                              }),\n                              z.xor([\n                                z.object({\n                                  values: z.never().optional(),\n                                  ranges: z.never().optional(),\n                                  scalar: z.never().optional(),\n                                }),\n                                z.object({\n                                  ranges: z.never().optional(),\n                                  scalar: z.never().optional(),\n                                  values: z\n                                    .object({\n                                      results: z\n                                        .array(\n                                          z.object({\n                                            value: z\n                                              .string()\n                                              .describe('Value of the field.')\n                                              .max(100)\n                                              .optional(),\n                                            count: z\n                                              .number()\n                                              .int()\n                                              .describe(\n                                                'Number of entities with this value.'\n                                              )\n                                              .optional(),\n                                          })\n                                        )\n                                        .max(250)\n                                        .optional(),\n                                    })\n                                    .describe('Value aggregation results.'),\n                                }),\n                                z.object({\n                                  values: z.never().optional(),\n                                  scalar: z.never().optional(),\n                                  ranges: z\n                                    .object({\n                                      results: z\n                                        .array(\n                                          z.object({\n                                            from: z\n                                              .number()\n                                              .describe(\n                                                'Inclusive lower bound of the range.'\n                                              )\n                                              .optional()\n                                              .nullable(),\n                                            to: z\n                                              .number()\n                                              .describe(\n                                                'Exclusive upper bound of the range.'\n                                              )\n                                              .optional()\n                                              .nullable(),\n                                            count: z\n                                              .number()\n                                              .int()\n                                              .describe(\n                                                'Total number of entities in this range.'\n                                              )\n                                              .optional(),\n                                          })\n                                        )\n                                        .max(50)\n                                        .optional(),\n                                    })\n                                    .describe('Range aggregation results.'),\n                                }),\n                                z.object({\n                                  values: z.never().optional(),\n                                  ranges: z.never().optional(),\n                                  scalar: z\n                                    .object({\n                                      type: z\n                                        .enum(['COUNT_DISTINCT', 'MIN', 'MAX'])\n                                        .describe('Type of scalar aggregation.')\n                                        .optional(),\n                                      value: z\n                                        .number()\n                                        .describe(\n                                          'Value of the scalar aggregation.'\n                                        )\n                                        .optional(),\n                                    })\n                                    .describe('Scalar aggregation results.'),\n                                }),\n                              ])\n                            )\n                            .describe('Nested aggregations.')\n                            .optional(),\n                        })\n                      )\n                      .max(1000)\n                      .optional(),\n                  })\n                  .describe('Group by value aggregation results.'),\n              }),\n              z.object({\n                values: z.never().optional(),\n                ranges: z.never().optional(),\n                scalar: z.never().optional(),\n                groupedByValue: z.never().optional(),\n                nested: z.never().optional(),\n                scalarDate: z.never().optional(),\n                dateHistogram: z\n                  .object({\n                    results: z\n                      .array(\n                        z.object({\n                          value: z\n                            .string()\n                            .describe(\n                              'Date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.'\n                            )\n                            .max(100)\n                            .optional(),\n                          count: z\n                            .number()\n                            .int()\n                            .describe('Number of entities in the bucket.')\n                            .optional(),\n                        })\n                      )\n                      .max(200)\n                      .optional(),\n                  })\n                  .describe('Date histogram aggregation results.'),\n              }),\n              z.object({\n                values: z.never().optional(),\n                ranges: z.never().optional(),\n                scalar: z.never().optional(),\n                groupedByValue: z.never().optional(),\n                dateHistogram: z.never().optional(),\n                scalarDate: z.never().optional(),\n                nested: z\n                  .object({\n                    results: z\n                      .array(\n                        z.object({\n                          results: z\n                            .record(\n                              z.string(),\n                              z.intersection(\n                                z.object({}),\n                                z.xor([\n                                  z.object({\n                                    value: z.never().optional(),\n                                    range: z.never().optional(),\n                                    scalar: z.never().optional(),\n                                    dateHistogram: z.never().optional(),\n                                    scalarDate: z.never().optional(),\n                                  }),\n                                  z.object({\n                                    range: z.never().optional(),\n                                    scalar: z.never().optional(),\n                                    dateHistogram: z.never().optional(),\n                                    scalarDate: z.never().optional(),\n                                    value: z\n                                      .object({\n                                        value: z\n                                          .string()\n                                          .describe('Value of the field.')\n                                          .max(1000)\n                                          .optional(),\n                                        count: z\n                                          .number()\n                                          .int()\n                                          .describe(\n                                            'Number of entities with this value.'\n                                          )\n                                          .optional()\n                                          .nullable(),\n                                      })\n                                      .describe('Value aggregation result.'),\n                                  }),\n                                  z.object({\n                                    value: z.never().optional(),\n                                    scalar: z.never().optional(),\n                                    dateHistogram: z.never().optional(),\n                                    scalarDate: z.never().optional(),\n                                    range: z\n                                      .object({\n                                        from: z\n                                          .number()\n                                          .describe(\n                                            'Inclusive lower bound of the range.'\n                                          )\n                                          .optional()\n                                          .nullable(),\n                                        to: z\n                                          .number()\n                                          .describe(\n                                            'Exclusive upper bound of the range.'\n                                          )\n                                          .optional()\n                                          .nullable(),\n                                        count: z\n                                          .number()\n                                          .int()\n                                          .describe(\n                                            'Number of entities in this range.'\n                                          )\n                                          .optional()\n                                          .nullable(),\n                                      })\n                                      .describe('Range aggregation result.'),\n                                  }),\n                                  z.object({\n                                    value: z.never().optional(),\n                                    range: z.never().optional(),\n                                    dateHistogram: z.never().optional(),\n                                    scalarDate: z.never().optional(),\n                                    scalar: z\n                                      .object({\n                                        value: z\n                                          .number()\n                                          .describe(\n                                            'Value of the scalar aggregation.'\n                                          )\n                                          .optional(),\n                                      })\n                                      .describe('Scalar aggregation result.'),\n                                  }),\n                                  z.object({\n                                    value: z.never().optional(),\n                                    range: z.never().optional(),\n                                    scalar: z.never().optional(),\n                                    scalarDate: z.never().optional(),\n                                    dateHistogram: z\n                                      .object({\n                                        value: z\n                                          .string()\n                                          .describe('Value of the field.')\n                                          .max(1000)\n                                          .optional(),\n                                        count: z\n                                          .number()\n                                          .int()\n                                          .describe(\n                                            'Number of entities with this value.'\n                                          )\n                                          .optional()\n                                          .nullable(),\n                                      })\n                                      .describe(\n                                        'Date histogram aggregation result.'\n                                      ),\n                                  }),\n                                  z.object({\n                                    value: z.never().optional(),\n                                    range: z.never().optional(),\n                                    scalar: z.never().optional(),\n                                    dateHistogram: z.never().optional(),\n                                    scalarDate: z\n                                      .object({\n                                        value: z\n                                          .string()\n                                          .describe(\n                                            'Date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.'\n                                          )\n                                          .max(100)\n                                          .optional(),\n                                      })\n                                      .describe(\n                                        'Scalar date aggregation result.'\n                                      ),\n                                  }),\n                                ])\n                              )\n                            )\n                            .describe('List of nested aggregations.')\n                            .optional(),\n                        })\n                      )\n                      .max(1000)\n                      .optional(),\n                  })\n                  .describe('Nested aggregation results.'),\n              }),\n              z.object({\n                values: z.never().optional(),\n                ranges: z.never().optional(),\n                scalar: z.never().optional(),\n                groupedByValue: z.never().optional(),\n                dateHistogram: z.never().optional(),\n                nested: z.never().optional(),\n                scalarDate: z\n                  .object({\n                    type: z\n                      .enum(['COUNT_DISTINCT', 'MIN', 'MAX'])\n                      .describe(\n                        'Type of scalar date aggregation. Possible values: `MIN`, `MAX`.'\n                      )\n                      .optional(),\n                    value: z\n                      .string()\n                      .describe(\n                        'Date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.'\n                      )\n                      .max(100)\n                      .optional(),\n                  })\n                  .describe('Date aggregation results.'),\n              }),\n            ])\n          )\n        )\n        .max(10000)\n        .optional(),\n    })\n    .describe('Aggregation data')\n    .optional(),\n});\nexport const CountAccountsRequest = z.object({\n  options: z\n    .object({\n      filter: z\n        .record(z.string(), z.any())\n        .describe('Filter object.')\n        .optional()\n        .nullable(),\n      search: z\n        .object({\n          mode: z.enum(['OR', 'AND']).optional(),\n          expression: z\n            .string()\n            .describe('Search term or expression.')\n            .max(100)\n            .optional()\n            .nullable(),\n          fields: z.array(z.string()).max(20).optional(),\n          fuzzy: z\n            .boolean()\n            .describe(\n              'Whether to enable the search function to use an algorithm to automatically find results that are close to the search expression, such as typos and declensions.'\n            )\n            .optional(),\n        })\n        .describe('Free text to match in searchable fields.')\n        .optional(),\n    })\n    .optional(),\n});\nexport const CountAccountsResponse = z.object({\n  count: z.number().int().min(0).optional(),\n});\nexport const BulkAdjustPointsRequest = z.object({\n  options: z\n    .intersection(\n      z.object({\n        search: z\n          .intersection(\n            z.object({\n              filter: z\n                .record(z.string(), z.any())\n                .describe(\n                  'Filter object.\\n\\nLearn more about [filtering](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#filters).'\n                )\n                .optional()\n                .nullable(),\n              sort: z\n                .array(\n                  z.object({\n                    fieldName: z\n                      .string()\n                      .describe('Name of the field to sort by.')\n                      .max(512)\n                      .optional(),\n                    order: z.enum(['ASC', 'DESC']).optional(),\n                  })\n                )\n                .max(10)\n                .optional(),\n              aggregations: z\n                .array(\n                  z.intersection(\n                    z.object({\n                      name: z\n                        .string()\n                        .describe(\n                          'Aggregation name, returned in `aggregations.results.name`.'\n                        )\n                        .max(100)\n                        .optional()\n                        .nullable(),\n                      type: z\n                        .enum([\n                          'VALUE',\n                          'RANGE',\n                          'SCALAR',\n                          'DATE_HISTOGRAM',\n                          'NESTED',\n                        ])\n                        .optional(),\n                      fieldPath: z\n                        .string()\n                        .describe(\n                          'Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.'\n                        )\n                        .max(200)\n                        .optional(),\n                      groupBy: z\n                        .intersection(\n                          z.object({\n                            name: z\n                              .string()\n                              .describe(\n                                'Unique, caller-defined aggregation name, returned in `aggregations.results`.'\n                              )\n                              .max(100)\n                              .optional()\n                              .nullable(),\n                            fieldPath: z\n                              .string()\n                              .describe('Field to aggregate by.')\n                              .max(200)\n                              .optional(),\n                          }),\n                          z.xor([\n                            z.object({ value: z.never().optional() }),\n                            z.object({\n                              value: z\n                                .intersection(\n                                  z.object({\n                                    sortType: z\n                                      .enum(['COUNT', 'VALUE'])\n                                      .describe('Sort type.')\n                                      .optional(),\n                                    sortDirection: z\n                                      .enum(['DESC', 'ASC'])\n                                      .describe('Sort direction.')\n                                      .optional(),\n                                    limit: z\n                                      .number()\n                                      .int()\n                                      .describe(\n                                        'Number of aggregation results to return.\\nMin: `1`\\nMax: `250`\\nDefault: `10`'\n                                      )\n                                      .optional()\n                                      .nullable(),\n                                    missingValues: z\n                                      .enum(['EXCLUDE', 'INCLUDE'])\n                                      .describe(\n                                        'Whether to include or exclude missing values in the aggregation results.\\nDefault: `EXCLUDE`.'\n                                      )\n                                      .optional(),\n                                  }),\n                                  z.xor([\n                                    z.object({\n                                      includeOptions: z.never().optional(),\n                                    }),\n                                    z.object({\n                                      includeOptions: z\n                                        .object({\n                                          addToBucket: z\n                                            .string()\n                                            .describe(\n                                              'Specify a custom name for the bucket containing the missing values. Defaults are `\"N/A\"` for strings, `0` for integers, and `false` for booleans.'\n                                            )\n                                            .max(20)\n                                            .optional(),\n                                        })\n                                        .describe(\n                                          'Options for including missing values in results.'\n                                        ),\n                                    }),\n                                  ])\n                                )\n                                .describe('Value aggregation configuration.'),\n                            }),\n                          ])\n                        )\n                        .describe('Deprecated. Use `nested` instead.')\n                        .optional(),\n                    }),\n                    z.xor([\n                      z.object({\n                        value: z.never().optional(),\n                        range: z.never().optional(),\n                        scalar: z.never().optional(),\n                        dateHistogram: z.never().optional(),\n                        nested: z.never().optional(),\n                      }),\n                      z.object({\n                        range: z.never().optional(),\n                        scalar: z.never().optional(),\n                        dateHistogram: z.never().optional(),\n                        nested: z.never().optional(),\n                        value: z\n                          .intersection(\n                            z.object({\n                              sortType: z\n                                .enum(['COUNT', 'VALUE'])\n                                .describe('Sort type.')\n                                .optional(),\n                              sortDirection: z\n                                .enum(['DESC', 'ASC'])\n                                .describe('Sort direction.')\n                                .optional(),\n                              limit: z\n                                .number()\n                                .int()\n                                .describe(\n                                  'Number of aggregation results to return.\\nMin: `1`\\nMax: `250`\\nDefault: `10`'\n                                )\n                                .optional()\n                                .nullable(),\n                              missingValues: z\n                                .enum(['EXCLUDE', 'INCLUDE'])\n                                .describe(\n                                  'Whether to include or exclude missing values in the aggregation results.\\nDefault: `EXCLUDE`.'\n                                )\n                                .optional(),\n                            }),\n                            z.xor([\n                              z.object({\n                                includeOptions: z.never().optional(),\n                              }),\n                              z.object({\n                                includeOptions: z\n                                  .object({\n                                    addToBucket: z\n                                      .string()\n                                      .describe(\n                                        'Specify a custom name for the bucket containing the missing values. Defaults are `\"N/A\"` for strings, `0` for integers, and `false` for booleans.'\n                                      )\n                                      .max(20)\n                                      .optional(),\n                                  })\n                                  .describe(\n                                    'Options for including missing values in results.'\n                                  ),\n                              }),\n                            ])\n                          )\n                          .describe(\n                            'A value aggregation calculates metrics such as count for specific fields within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of products for each price listed in the store.'\n                          ),\n                      }),\n                      z.object({\n                        value: z.never().optional(),\n                        scalar: z.never().optional(),\n                        dateHistogram: z.never().optional(),\n                        nested: z.never().optional(),\n                        range: z\n                          .object({\n                            buckets: z\n                              .array(\n                                z.object({\n                                  from: z\n                                    .number()\n                                    .describe(\n                                      'Inclusive lower bound of the range. Required if `to` is not provided.'\n                                    )\n                                    .optional()\n                                    .nullable(),\n                                  to: z\n                                    .number()\n                                    .describe(\n                                      'Exclusive upper bound of the range. Required if `from` is not provided.'\n                                    )\n                                    .optional()\n                                    .nullable(),\n                                })\n                              )\n                              .max(50)\n                              .optional(),\n                          })\n                          .describe(\n                            'A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more.'\n                          ),\n                      }),\n                      z.object({\n                        value: z.never().optional(),\n                        range: z.never().optional(),\n                        dateHistogram: z.never().optional(),\n                        nested: z.never().optional(),\n                        scalar: z\n                          .object({\n                            type: z\n                              .enum(['COUNT_DISTINCT', 'MIN', 'MAX'])\n                              .describe(\n                                'Operator type for the scalar aggregation.'\n                              )\n                              .optional(),\n                          })\n                          .describe(\n                            'A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`.'\n                          ),\n                      }),\n                      z.object({\n                        value: z.never().optional(),\n                        range: z.never().optional(),\n                        scalar: z.never().optional(),\n                        nested: z.never().optional(),\n                        dateHistogram: z\n                          .object({\n                            interval: z\n                              .enum([\n                                'YEAR',\n                                'MONTH',\n                                'WEEK',\n                                'DAY',\n                                'HOUR',\n                                'MINUTE',\n                                'SECOND',\n                              ])\n                              .describe(\n                                'Interval for date histogram aggregation.'\n                              )\n                              .optional(),\n                          })\n                          .describe(\n                            'A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.) For example, use a date histogram to find how many reservations have been made at a restaurant each week.'\n                          ),\n                      }),\n                      z.object({\n                        value: z.never().optional(),\n                        range: z.never().optional(),\n                        scalar: z.never().optional(),\n                        dateHistogram: z.never().optional(),\n                        nested: z\n                          .object({\n                            nestedAggregations: z\n                              .array(\n                                z.intersection(\n                                  z.object({\n                                    name: z\n                                      .string()\n                                      .describe(\n                                        'Unique, caller-defined aggregation name, returned in `aggregations.results`.'\n                                      )\n                                      .max(100)\n                                      .optional()\n                                      .nullable(),\n                                    type: z\n                                      .enum([\n                                        'VALUE',\n                                        'RANGE',\n                                        'SCALAR',\n                                        'DATE_HISTOGRAM',\n                                      ])\n                                      .optional(),\n                                    fieldPath: z\n                                      .string()\n                                      .describe(\n                                        'Field to aggregate by. Use dot notation to specify a JSON path. For example, `order.address.streetName`.'\n                                      )\n                                      .max(200)\n                                      .optional(),\n                                  }),\n                                  z.xor([\n                                    z.object({\n                                      value: z.never().optional(),\n                                      range: z.never().optional(),\n                                      scalar: z.never().optional(),\n                                      dateHistogram: z.never().optional(),\n                                    }),\n                                    z.object({\n                                      range: z.never().optional(),\n                                      scalar: z.never().optional(),\n                                      dateHistogram: z.never().optional(),\n                                      value: z\n                                        .intersection(\n                                          z.object({\n                                            sortType: z\n                                              .enum(['COUNT', 'VALUE'])\n                                              .describe('Sort type.')\n                                              .optional(),\n                                            sortDirection: z\n                                              .enum(['DESC', 'ASC'])\n                                              .describe('Sort direction.')\n                                              .optional(),\n                                            limit: z\n                                              .number()\n                                              .int()\n                                              .describe(\n                                                'Number of aggregation results to return.\\nMin: `1`\\nMax: `250`\\nDefault: `10`'\n                                              )\n                                              .optional()\n                                              .nullable(),\n                                            missingValues: z\n                                              .enum(['EXCLUDE', 'INCLUDE'])\n                                              .describe(\n                                                'Whether to include or exclude missing values in the aggregation results.\\nDefault: `EXCLUDE`.'\n                                              )\n                                              .optional(),\n                                          }),\n                                          z.xor([\n                                            z.object({\n                                              includeOptions: z\n                                                .never()\n                                                .optional(),\n                                            }),\n                                            z.object({\n                                              includeOptions: z\n                                                .object({\n                                                  addToBucket: z\n                                                    .string()\n                                                    .describe(\n                                                      'Specify a custom name for the bucket containing the missing values. Defaults are `\"N/A\"` for strings, `0` for integers, and `false` for booleans.'\n                                                    )\n                                                    .max(20)\n                                                    .optional(),\n                                                })\n                                                .describe(\n                                                  'Options for including missing values in results.'\n                                                ),\n                                            }),\n                                          ])\n                                        )\n                                        .describe(\n                                          \"A value aggregation calculates the distribution of a specific field's values within a dataset, providing insights into the overall distribution and key statistics of those values. For example, use a value aggregation to get the number (count) of orders for each order status.\"\n                                        ),\n                                    }),\n                                    z.object({\n                                      value: z.never().optional(),\n                                      scalar: z.never().optional(),\n                                      dateHistogram: z.never().optional(),\n                                      range: z\n                                        .object({\n                                          buckets: z\n                                            .array(\n                                              z.object({\n                                                from: z\n                                                  .number()\n                                                  .describe(\n                                                    'Inclusive lower bound of the range. Required if `to` is not provided.'\n                                                  )\n                                                  .optional()\n                                                  .nullable(),\n                                                to: z\n                                                  .number()\n                                                  .describe(\n                                                    'Exclusive upper bound of the range. Required if `from` is not provided.'\n                                                  )\n                                                  .optional()\n                                                  .nullable(),\n                                              })\n                                            )\n                                            .max(50)\n                                            .optional(),\n                                        })\n                                        .describe(\n                                          'A range aggregation calculates the count of the values from the specified field in the dataset that fall within the range of each bucket you define. For example, use a range aggregation to compare the number of reservations made for parties of 4 or less to the number of reservations made for parties with 5 or more. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria.'\n                                        ),\n                                    }),\n                                    z.object({\n                                      value: z.never().optional(),\n                                      range: z.never().optional(),\n                                      dateHistogram: z.never().optional(),\n                                      scalar: z\n                                        .object({\n                                          type: z\n                                            .enum([\n                                              'COUNT_DISTINCT',\n                                              'MIN',\n                                              'MAX',\n                                            ])\n                                            .describe(\n                                              'Operator type for the scalar aggregation.'\n                                            )\n                                            .optional(),\n                                        })\n                                        .describe(\n                                          'A scalar aggregation calculates a single numerical value from a dataset, summarizing the dataset into one key metric: `COUNT_DISTINCT`, `SUM`, `AVG`, `MIN`, or `MAX`.'\n                                        ),\n                                    }),\n                                    z.object({\n                                      value: z.never().optional(),\n                                      range: z.never().optional(),\n                                      scalar: z.never().optional(),\n                                      dateHistogram: z\n                                        .object({\n                                          interval: z\n                                            .enum([\n                                              'YEAR',\n                                              'MONTH',\n                                              'WEEK',\n                                              'DAY',\n                                              'HOUR',\n                                              'MINUTE',\n                                              'SECOND',\n                                            ])\n                                            .describe(\n                                              'Interval for date histogram aggregation.'\n                                            )\n                                            .optional(),\n                                        })\n                                        .describe(\n                                          'A date histogram calculates the count of time values from the specified field in the dataset that fall within each time interval you define (hour, day, week, etc.). For example, use a date histogram to determine how many reservations have been made at a restaurant each week. If ranges overlap, a record that fits more than one range will only be counted in the first range that matches the criteria.'\n                                        ),\n                                    }),\n                                  ])\n                                )\n                              )\n                              .min(2)\n                              .max(3)\n                              .optional(),\n                          })\n                          .describe(\n                            'A nested aggregation is applied within the results of another aggregation. Rather than aggregating directly on the primary dataset, first group data using one aggregation and then apply another aggregation within each group. It allows for more complex analyses where you can summarize data at different levels of detail or hierarchy. For example, to get the number of products that are in stock and out of stock for each price listed, first perform a value aggregation on `discountedPriceNumeric`, and a second value aggregation on `inStock`.'\n                          ),\n                      }),\n                    ])\n                  )\n                )\n                .max(10)\n                .optional(),\n              search: z\n                .object({\n                  mode: z.enum(['OR', 'AND']).optional(),\n                  expression: z\n                    .string()\n                    .describe('Search term or expression.')\n                    .max(100)\n                    .optional()\n                    .nullable(),\n                  fields: z.array(z.string()).max(20).optional(),\n                  fuzzy: z\n                    .boolean()\n                    .describe(\n                      'Whether to enable the search function to use an algorithm to automatically find results that are close to the search expression, such as typos and declensions.'\n                    )\n                    .optional(),\n                })\n                .describe('Free text to match in searchable fields.')\n                .optional(),\n              timeZone: z\n                .string()\n                .describe(\n                  'Time zone to adjust date-time-based filters and aggregations, in ISO 8601 (including offsets) or IANA time zone database (including time zone IDs) format.\\nApplies to all relevant filters and aggregations, unless overridden by providing timestamps including time zone. For example, \"2023-12-20T10:52:34.795Z\".'\n                )\n                .max(50)\n                .optional()\n                .nullable(),\n            }),\n            z.xor([\n              z.object({ cursorPaging: z.never().optional() }),\n              z.object({\n                cursorPaging: z\n                  .object({\n                    limit: z\n                      .number()\n                      .int()\n                      .describe(\n                        'Maximum number of items to return in the results.'\n                      )\n                      .min(0)\n                      .max(100)\n                      .optional()\n                      .nullable(),\n                    cursor: z\n                      .string()\n                      .describe(\n                        \"Pointer to the next or previous page in the list of results.\\n\\nPass the relevant cursor token from the `pagingMetadata` object in the previous call's response.\\nNot relevant for the first request.\"\n                      )\n                      .max(16000)\n                      .optional()\n                      .nullable(),\n                  })\n                  .describe(\n                    'Cursor paging options.\\n\\nLearn more about [cursor paging](https://dev.wix.com/docs/rest/articles/getting-started/api-query-language#cursor-paging).'\n                  ),\n              }),\n            ])\n          )\n          .optional(),\n      }),\n      z.xor([\n        z.object({\n          balance: z.never().optional(),\n          amount: z.never().optional(),\n        }),\n        z.object({\n          amount: z.never().optional(),\n          balance: z.number().int().min(0).max(999999999),\n        }),\n        z.object({\n          balance: z.never().optional(),\n          amount: z.number().int().min(-9999999).max(9999999),\n        }),\n      ])\n    )\n    .optional(),\n});\nexport const BulkAdjustPointsResponse = z.object({\n  asyncJobId: z\n    .string()\n    .describe(\n      'ID of the job.\\n\\nUse this ID to call [Get Async Job](https://dev.wix.com/docs/api-reference/business-management/async-job/get-async-job)\\nto retrieve the job details and metadata.'\n    )\n    .regex(\n      /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,\n      'Must be a valid GUID'\n    )\n    .optional()\n    .nullable(),\n});\n"],"mappings":"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","names":[]}