import {z} from 'zod' export type ISODateString = string; export type IPurchaseStateDatesBulk = {dates: Array}; export type UpdateApiVendorCustomerCustomerRelationshipIdPurchaseStateCustomerPurchaseStateIdBulkSkipArgs = {customerRelationshipId: string, customerPurchaseStateId: string, body: IPurchaseStateDatesBulk}; export type UpdateApiVendorCustomerCustomerRelationshipIdPurchaseStateCustomerPurchaseStateIdBulkSkipOptions = {baseUrl?: string | undefined, smartrrAccessToken?: string | undefined, fetch?: typeof fetch | undefined}; export const iSODateString = z.string(); export const bigIntString = z.string(); export const purchaseStateStatus = z.enum(["ACTIVE", "PAUSED", "CANCELLED", "EXPIRED", "FAILED"]); export const currencyCode = z.enum(["STN", "VED", "USD", "USDC", "EUR", "GBP", "CAD", "AFN", "ALL", "DZD", "AOA", "ARS", "AMD", "AWG", "AUD", "BBD", "AZN", "BDT", "BSD", "BHD", "BIF", "BZD", "BMD", "BTN", "BAM", "BRL", "BOB", "BWP", "BND", "BGN", "MMK", "KHR", "CVE", "KYD", "XAF", "CLP", "CNY", "COP", "KMF", "CDF", "CRC", "HRK", "CZK", "DKK", "DOP", "XCD", "XCG", "EGP", "ETB", "XPF", "FJD", "GMD", "GHS", "GTQ", "GYD", "GEL", "HTG", "HNL", "HKD", "HUF", "ISK", "INR", "IDR", "ILS", "IQD", "JMD", "JPY", "JEP", "JOD", "KZT", "KES", "KWD", "KGS", "LAK", "LVL", "LBP", "LSL", "LRD", "LTL", "MGA", "MKD", "MOP", "MWK", "MVR", "MXN", "MYR", "MUR", "MDL", "MAD", "MNT", "MZN", "NAD", "NPR", "ANG", "NZD", "NIO", "NGN", "NOK", "OMR", "PAB", "PKR", "PGK", "PYG", "PEN", "PHP", "PLN", "QAR", "RON", "RUB", "RWF", "WST", "SAR", "STD", "RSD", "SCR", "SGD", "SDG", "SYP", "ZAR", "KRW", "SSP", "SBD", "LKR", "SRD", "SZL", "SEK", "CHF", "TWD", "THB", "TZS", "TTD", "TND", "TRY", "TMT", "UGX", "UAH", "AED", "UYU", "UZS", "VUV", "VND", "XOF", "YER", "ZMW", "BYN", "BYR", "DJF", "ERN", "FKP", "GIP", "GNF", "IRR", "KID", "LYD", "MRU", "SLL", "SHP", "SOS", "TJS", "TOP", "VEF", "VES", "XXX"]); export const discountAllocationMethod = z.union([z.literal(0), z.literal(1), z.literal(2)]); export const discountTargetSelection = z.union([z.literal(0), z.literal(1), z.literal(2)]); export const discountTargetType = z.union([z.literal(0), z.literal(1)]); export const discountApplicationType = z.union([z.literal(0), z.literal(1), z.literal(2), z.literal(3)]); export const discountValueType = z.union([z.literal(0), z.literal(1)]); export const iPurchaseStateDiscount = z.object({allocationMethod: discountAllocationMethod.optional(), code: z.string().optional(), currency: currencyCode.optional(), description: z.string().optional(), rejectionReason: z.string().optional(), recurringCycleLimit: z.number().optional(), targetSelection: discountTargetSelection.optional(), targetType: discountTargetType.optional(), title: z.string().optional(), type: discountApplicationType, value: z.number(), valueType: discountValueType, vendorId: z.string().optional(), usageCount: z.number()}); export const iMailingAddressJson = z.object({latitude: z.number().nullable().optional(), longitude: z.number().nullable().optional(), city: z.string().optional(), province: z.string().optional(), provinceCode: z.string().optional(), zip: z.string().optional(), country: z.string().optional(), countryCode: z.enum(["AF", "AX", "AL", "DZ", "AD", "AO", "AI", "AG", "AR", "AM", "AW", "AC", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BA", "BW", "BV", "BR", "IO", "BN", "BG", "BF", "BI", "KH", "CA", "CV", "BQ", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CG", "CD", "CK", "CR", "HR", "CU", "CW", "CY", "CZ", "CI", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "SZ", "ET", "FK", "FO", "FJ", "FI", "FR", "GF", "PF", "TF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GP", "GT", "GG", "GN", "GW", "GY", "HT", "HM", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KP", "XK", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MG", "MW", "MY", "MV", "ML", "MT", "MQ", "MR", "MU", "YT", "MX", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "AN", "NC", "NZ", "NI", "NE", "NG", "NU", "NF", "MK", "NO", "OM", "PK", "PS", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "QA", "CM", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "GS", "KR", "SS", "ES", "LK", "VC", "SD", "SR", "SJ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TL", "TG", "TK", "TO", "TT", "TA", "TN", "TR", "TM", "TC", "TV", "UG", "UA", "AE", "GB", "US", "UM", "UY", "UZ", "VU", "VE", "VN", "VG", "WF", "EH", "YE", "ZM", "ZW", "ZZ"]).optional(), address1: z.string().optional(), address2: z.string().optional(), shopifyId: z.string().optional(), email: z.string().optional(), phone: z.string().optional(), firstName: z.string().optional(), lastName: z.string().optional(), company: z.string().optional()}); export const purchaseStateExternalSubscriptionType = z.literal("RECHARGE"); export const date = z.string(); export const skipArrValue = z.object({userSkipped: z.boolean(), hiddenSkipped: z.boolean()}).nullable(); export const iSchedule = z.object({id: z.string(), createdDate: iSODateString, updatedDate: iSODateString, deletedAt: iSODateString.optional(), anchor: z.object({}), extendOnUserSkip: z.boolean(), extendOnHiddenSkip: z.boolean(), ignorePastIndicesWhenExtending: z.boolean(), initialSequenceStartDate: date, billedCycleStartDate: date.optional(), billedDeliveriesCount: z.number().optional(), totalOrdersCount: z.number().optional(), totalBillingCycles: z.number().optional(), deliveryFrequencyMultiple: z.number(), paymentFrequencyMultiple: z.number(), skips: z.array(skipArrValue), deliveryRRuleString: z.string()}); export const iShopifyLikeMailingAddress = z.object({address1: z.string().optional(), address2: z.string().optional(), city: z.string().optional(), company: z.string().optional(), country: z.string().optional(), countryCode: z.string().optional(), firstName: z.string().optional(), lastName: z.string().optional(), phone: z.string().optional(), province: z.string().optional(), provinceCode: z.string().optional(), zip: z.string().optional()}); export const iGift = z.object({to: iShopifyLikeMailingAddress, stId: z.string(), skdIdx: z.number(), email: z.string().optional(), phone: z.string().optional(), note: z.string().optional(), notifyBy: z.enum(["email", "text", "email+text"]), id: z.string()}); export const iSOTimeString = z.string(); export const tZ = z.enum(["Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa", "Africa/Algiers", "Africa/Asmara", "Africa/Asmera", "Africa/Bamako", "Africa/Bangui", "Africa/Banjul", "Africa/Blantyre", "Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo", "Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar", "Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala", "Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone", "Africa/Harare", "Africa/Johannesburg", "Africa/Juba", "Africa/Kampala", "Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos", "Africa/Libreville", "Africa/Lome", "Africa/Luanda", "Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo", "Africa/Maputo", "Africa/Maseru", "Africa/Mbabane", "Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi", "Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome", "Africa/Timbuktu", "Africa/Tripoli", "Africa/Tunis", "Africa/Windhoek", "America/Adak", "America/Anchorage", "America/Anguilla", "America/Antigua", "America/Araguaina", "America/Argentina/Buenos_Aires", "America/Argentina/Catamarca", "America/Argentina/ComodRivadavia", "America/Argentina/Cordoba", "America/Argentina/Jujuy", "America/Argentina/La_Rioja", "America/Argentina/Mendoza", "America/Argentina/Rio_Gallegos", "America/Argentina/Salta", "America/Argentina/San_Juan", "America/Argentina/San_Luis", "America/Argentina/Tucuman", "America/Argentina/Ushuaia", "America/Aruba", "America/Asuncion", "America/Atikokan", "America/Atka", "America/Bahia", "America/Bahia_Banderas", "America/Barbados", "America/Belem", "America/Belize", "America/Blanc-Sablon", "America/Boa_Vista", "America/Bogota", "America/Boise", "America/Buenos_Aires", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Caracas", "America/Catamarca", "America/Cayenne", "America/Cayman", "America/Chicago", "America/Chihuahua", "America/Coral_Harbour", "America/Cordoba", "America/Costa_Rica", "America/Creston", "America/Cuiaba", "America/Curacao", "America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek", "America/Denver", "America/Detroit", "America/Dominica", "America/Edmonton", "America/Eirunepe", "America/El_Salvador", "America/Ensenada", "America/Fort_Wayne", "America/Fortaleza", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Grenada", "America/Guadeloupe", "America/Guatemala", "America/Guayaquil", "America/Guyana", "America/Halifax", "America/Havana", "America/Hermosillo", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Valparaiso", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Indianapolis", "America/Inuvik", "America/Iqaluit", "America/Jamaica", "America/Jujuy", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Knox_IN", "America/Kralendijk", "America/La_Paz", "America/Lima", "America/Los_Angeles", "America/Louisville", "America/Lower_Princes", "America/Maceio", "America/Managua", "America/Manaus", "America/Marigot", "America/Martinique", "America/Matamoros", "America/Mazatlan", "America/Mendoza", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Montreal", "America/Montserrat", "America/Nassau", "America/New_York", "America/Nipigon", "America/Nome", "America/Noronha", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Ojinaga", "America/Panama", "America/Pangnirtung", "America/Paramaribo", "America/Phoenix", "America/Port_of_Spain", "America/Port-au-Prince", "America/Porto_Acre", "America/Porto_Velho", "America/Puerto_Rico", "America/Rainy_River", "America/Rankin_Inlet", "America/Recife", "America/Regina", "America/Resolute", "America/Rio_Branco", "America/Rosario", "America/Santa_Isabel", "America/Santarem", "America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo", "America/Scoresbysund", "America/Shiprock", "America/Sitka", "America/St_Barthelemy", "America/St_Johns", "America/St_Kitts", "America/St_Lucia", "America/St_Thomas", "America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa", "America/Thule", "America/Thunder_Bay", "America/Tijuana", "America/Toronto", "America/Tortola", "America/Vancouver", "America/Virgin", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "America/Yellowknife", "Antarctica/Casey", "Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Macquarie", "Antarctica/Mawson", "Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/Rothera", "Antarctica/South_Pole", "Antarctica/Syowa", "Antarctica/Troll", "Antarctica/Vostok", "Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman", "Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat", "Asia/Ashkhabad", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku", "Asia/Bangkok", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei", "Asia/Calcutta", "Asia/Choibalsan", "Asia/Chongqing", "Asia/Chungking", "Asia/Colombo", "Asia/Dacca", "Asia/Damascus", "Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Gaza", "Asia/Harbin", "Asia/Hebron", "Asia/Ho_Chi_Minh", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk", "Asia/Istanbul", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem", "Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kashgar", "Asia/Kathmandu", "Asia/Katmandu", "Asia/Khandyga", "Asia/Kolkata", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur", "Asia/Kuching", "Asia/Kuwait", "Asia/Macao", "Asia/Macau", "Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat", "Asia/Nicosia", "Asia/Novokuznetsk", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral", "Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar", "Asia/Qyzylorda", "Asia/Rangoon", "Asia/Riyadh", "Asia/Saigon", "Asia/Sakhalin", "Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore", "Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran", "Asia/Tel_Aviv", "Asia/Thimbu", "Asia/Thimphu", "Asia/Tokyo", "Asia/Ujung_Pandang", "Asia/Ulaanbaatar", "Asia/Ulan_Bator", "Asia/Urumqi", "Asia/Ust-Nera", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk", "Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde", "Atlantic/Faeroe", "Atlantic/Faroe", "Atlantic/Jan_Mayen", "Atlantic/Madeira", "Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena", "Atlantic/Stanley", "Australia/ACT", "Australia/Adelaide", "Australia/Brisbane", "Australia/Broken_Hill", "Australia/Canberra", "Australia/Currie", "Australia/Darwin", "Australia/Eucla", "Australia/Hobart", "Australia/LHI", "Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/North", "Australia/NSW", "Australia/Perth", "Australia/Queensland", "Australia/South", "Australia/Sydney", "Australia/Tasmania", "Australia/Victoria", "Australia/West", "Australia/Yancowinna", "Brazil/Acre", "Brazil/DeNoronha", "Brazil/East", "Brazil/West", "Canada/Atlantic", "Canada/Central", "Canada/Eastern", "Canada/East-Saskatchewan", "Canada/Mountain", "Canada/Newfoundland", "Canada/Pacific", "Canada/Saskatchewan", "Canada/Yukon", "Chile/Continental", "Chile/EasterIsland", "Cuba", "Egypt", "Eire", "Etc/GMT", "Etc/GMT+0", "Etc/UCT", "Etc/Universal", "Etc/UTC", "Etc/Zulu", "Europe/Amsterdam", "Europe/Andorra", "Europe/Athens", "Europe/Belfast", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Istanbul", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Minsk", "Europe/Monaco", "Europe/Moscow", "Europe/Nicosia", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Tiraspol", "Europe/Uzhgorod", "Europe/Vaduz", "Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "GB", "GB-Eire", "GMT", "GMT+0", "GMT0", "GMT-0", "Greenwich", "Hongkong", "Iceland", "Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas", "Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe", "Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte", "Indian/Reunion", "Iran", "Israel", "Jamaica", "Japan", "Kwajalein", "Libya", "Mexico/BajaNorte", "Mexico/BajaSur", "Mexico/General", "Navajo", "NZ", "NZ-CHAT", "Pacific/Apia", "Pacific/Auckland", "Pacific/Chatham", "Pacific/Chuuk", "Pacific/Easter", "Pacific/Efate", "Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji", "Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier", "Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu", "Pacific/Johnston", "Pacific/Kiritimati", "Pacific/Kosrae", "Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas", "Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk", "Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau", "Pacific/Pitcairn", "Pacific/Pohnpei", "Pacific/Ponape", "Pacific/Port_Moresby", "Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Samoa", "Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu", "Pacific/Truk", "Pacific/Wake", "Pacific/Wallis", "Pacific/Yap", "Poland", "Portugal", "PRC", "ROC", "ROK", "Singapore", "Turkey", "UCT", "Universal", "US/Alaska", "US/Aleutian", "US/Arizona", "US/Central", "US/Eastern", "US/East-Indiana", "US/Hawaii", "US/Indiana-Starke", "US/Michigan", "US/Mountain", "US/Pacific", "US/Samoa", "UTC", "W-SU", "Zulu"]); export const iOrganizationAccount = z.object({unlockedPlanNames: z.array(z.string()).optional()}); export const vendorUserRole = z.enum(["vendorAdmin", "vendorEmployee"]); export const iVendorUser = z.object({id: z.string(), createdDate: iSODateString, updatedDate: iSODateString, deletedAt: iSODateString.optional(), originalFirstName: z.string().optional(), originalLastName: z.string().optional(), originalEmail: z.string().optional(), originalPhoneNumber: z.string().optional(), isSuperUser: z.boolean().optional(), hasPassword: z.boolean().optional(), userPhoto: z.string().optional(), gender: z.string().optional(), googleId: z.string().optional(), googlePhoto: z.string().optional(), vendorOrgRoles: z.array(z.lazy(() => iOrganizationVendorUserRole)).optional()}); export const iOrganizationVendorUserRole: z.ZodType = z.object({id: z.string(), createdDate: iSODateString, updatedDate: iSODateString, deletedAt: iSODateString.optional(), vendorShopifyUserId: z.string().optional(), isShopifyAccountOwner: z.boolean().optional(), isShopifyCollaborator: z.boolean().optional(), isShopOperator: z.boolean().optional(), isShopifyEmailVerified: z.boolean().optional(), role: vendorUserRole, organization: z.lazy(() => iOrganization), user: iVendorUser}); export const iPaymentMethod = z.object({id: z.string(), createdDate: iSODateString, updatedDate: iSODateString, deletedAt: iSODateString.optional(), shopifyId: z.string().optional(), receivedFromShopifyDate: iSODateString.optional(), shopifyUpdateDate: iSODateString, maskedNumber: z.string().nullable().optional(), cardBrand: z.string().nullable().optional(), cardExpirationMonth: z.number().nullable().optional(), cardExpirationYear: z.number().nullable().optional(), lastDigits: z.string().nullable().optional(), __paymentMethodKey__: z.string(), paymentMethodName: z.string().nullable().optional(), paymentMethodInternalCustomerId: z.string()}); export const iPurchaseStateLineItemDiscount = z.object({allocationMethod: discountAllocationMethod.optional(), code: z.string().optional(), currency: currencyCode.optional(), description: z.string().optional(), rejectionReason: z.string().optional(), recurringCycleLimit: z.number().optional(), targetSelection: discountTargetSelection.optional(), targetType: discountTargetType.optional(), title: z.string().optional(), type: discountApplicationType, value: z.number(), valueType: discountValueType, vendorId: z.string().optional(), usageCount: z.number()}); export const moneyV2 = z.object({amount: z.number(), currencyCode: currencyCode}); export const sellingPlanPricingPolicyAdjustmentValue = z.union([moneyV2, z.object({percentage: z.number().optional()})]); export const iPurchaseStateLineItemPricingPolicy = z.object({basePrice: moneyV2, cycleDiscounts: z.array(z.object({adjustmentType: z.enum(["PERCENTAGE", "FIXED_AMOUNT", "PRICE"]), adjustmentValue: sellingPlanPricingPolicyAdjustmentValue, afterCycle: z.number(), computedPrice: moneyV2}))}); export const presentmentPrice = z.object({price: bigIntString, priceCurrency: currencyCode}); export const productVariantInventoryPolicy = z.enum(["DENY", "CONTINUE"]).nullable(); export const iPurchasableVariant = z.object({id: z.string(), createdDate: iSODateString, updatedDate: iSODateString, deletedAt: iSODateString.optional(), shopifyId: z.string().optional(), receivedFromShopifyDate: iSODateString.optional(), shopifyUpdateDate: iSODateString, shopifyProductVariantStorefrontId: z.string().optional(), purchasableVariantName: z.string().optional(), purchasableVariantImages: z.array(z.string()).optional(), purchasableVariantSmallImages: z.array(z.string()).optional(), isActiveInShopify: z.boolean(), isDraftOrArchived: z.boolean().optional(), shopifyInventoryId: z.string().optional(), requiresShipping: z.boolean(), sku: z.string().optional(), unitCost: z.number().optional(), presentmentPrices: z.array(presentmentPrice), inventoryQuantity: z.number().nullable().optional(), inventoryPolicy: productVariantInventoryPolicy.optional()}); export const iPurchaseStateLineItem = z.object({id: z.string(), createdDate: iSODateString, updatedDate: iSODateString, deletedAt: iSODateString.optional(), shopifyId: z.string().optional(), receivedFromShopifyDate: iSODateString.optional(), shopifyUpdateDate: iSODateString, idempotencyKey: z.string().optional(), discounts: z.array(iPurchaseStateLineItemDiscount), basePrice: bigIntString, priceAfterDiscounts: bigIntString, priceCurrency: currencyCode, quantity: z.number(), pricingPolicy: iPurchaseStateLineItemPricingPolicy.optional(), isAddOn: z.boolean(), attributionSource: z.string().optional(), vnt: iPurchasableVariant, sellingPlanId: z.string().optional(), skdIdx: z.number().optional()}); export const iPurchaseState = z.object({id: z.string(), createdDate: iSODateString, updatedDate: iSODateString, deletedAt: iSODateString.optional(), totalFromLineItems: bigIntString, totalLineItemsDiscount: bigIntString, totalLineItemsAfterDiscount: bigIntString, totalShipping: bigIntString, totalDiscount: bigIntString, shopifyId: z.string().optional(), receivedFromShopifyDate: iSODateString.optional(), shopifyUpdateDate: iSODateString, purchaseStateStatus: purchaseStateStatus, createdViaCustomerPortal: z.boolean(), initialSubmissionDate: iSODateString, externalSubscriptionCreatedDate: iSODateString, cancelledAt: iSODateString, pausedAt: iSODateString, pauseReason: z.enum(["CREATION", "ROLLBACK", "CUSTOMER", "ADMIN", "API", "FLOW", "REVOKED_PAYMENT_METHOD", "AUTO_OUTOFSTOCK", "AUTO_ARCHIVEDLINEITEM", "AUTO_DELETEDLINEITEM", "AUTO_BILLINGFAILURE", "null"]).nullable(), externalSubscriptionCancelledAt: iSODateString, nextBillingDate: iSODateString, isRepeatCustomer: z.boolean(), sellingPlanId: z.string().optional(), currency: currencyCode, totalEstimatedTax: bigIntString.optional(), totalShippingDiscount: bigIntString.optional(), totalEstimatedNet: bigIntString, discounts: z.array(iPurchaseStateDiscount), shippingAddress: iMailingAddressJson, externalSubscriptionId: z.string().optional(), externalSubscriptionType: purchaseStateExternalSubscriptionType.optional(), externalSubscriptionStatus: purchaseStateStatus.optional(), originalExternalSubscriptionStatus: purchaseStateStatus.optional(), schedule: iSchedule, gifts: z.array(iGift).optional(), organization: z.lazy(() => iOrganization), pmtMth: iPaymentMethod, stLineItems: z.array(iPurchaseStateLineItem)}); export const iShopifyData = z.object({id: z.string(), createdDate: iSODateString, updatedDate: iSODateString, deletedAt: iSODateString.optional(), rawShopifyStoreId: z.number(), myShopifyDomain: z.string(), shopify_app_script_id: z.string().optional(), address1: z.string().nullable(), address2: z.string().optional(), city: z.string().nullable(), cookie_consent_level: z.string(), country: z.string(), country_code: z.string(), country_name: z.string(), created_at: z.string(), currency: currencyCode, customer_email: z.string(), email: z.string(), enabled_presentment_currencies: z.array(currencyCode), google_apps_domain: z.string().optional(), google_apps_login_enabled: z.string().optional(), iana_timezone: z.string(), latitude: z.number().nullable().optional(), longitude: z.number().nullable().optional(), money_format: z.string(), money_in_emails_format: z.string(), money_with_currency_format: z.string(), money_with_currency_in_emails_format: z.string(), domain: z.string(), name: z.string(), phone: z.string().nullable(), plan_display_name: z.string(), plan_name: z.string(), primary_locale: z.string(), primary_location_id: bigIntString, province: z.string().nullable(), province_code: z.string().optional(), shop_owner: z.string(), source: z.string().optional(), timezone: z.string(), updated_at: z.string(), visitor_tracking_consent_preference: z.string(), weight_unit: z.string(), zip: z.string().nullable(), checkout_api_supported: z.boolean(), finances: z.boolean(), force_ssl: z.boolean(), has_discounts: z.boolean(), has_gift_cards: z.boolean(), has_storefront: z.boolean(), multi_location_enabled: z.boolean(), county_taxes: z.boolean(), tax_shipping: z.boolean().optional(), eligible_for_payments: z.boolean(), password_enabled: z.boolean(), eligible_for_card_reader_giveaway: z.boolean(), pre_launch_enabled: z.boolean(), requires_extra_payments_agreement: z.boolean(), setup_required: z.boolean(), taxes_included: z.boolean()}); export const iOrganization: z.ZodType = z.object({id: z.string(), createdDate: iSODateString, updatedDate: iSODateString, deletedAt: iSODateString.optional(), billingTime: iSOTimeString, billingTimezone: tZ, numBillingRetries: z.number().optional(), delayBetweenRetries: z.number().optional(), orgName: z.string(), logo: z.string().optional(), myShopifyDomain: z.string().optional(), stripeAccessKey: z.string().optional(), numFailedCyclesBeforeCancel: z.number().optional(), initialSubscriptionImportComplete: z.boolean(), cancellationMessage: z.string().optional(), account: iOrganizationAccount, outOfStockItemRemovalEnabled: z.boolean().optional(), bundleOutOfStockAutoPauseEnabled: z.boolean().optional(), instantDigitalItemFulfillmentEnabled: z.boolean().optional(), vendorUsers: z.array(iOrganizationVendorUserRole), sts: z.array(iPurchaseState), shopifyStoreData: iShopifyData.optional()}); export const customerUserRole = z.enum(["individualCustomer", "customerOrgAdmin", "customerOrgEmployee"]); export const iOrganizationShallowWithIDs = z.object({id: z.string(), createdDate: iSODateString, updatedDate: iSODateString, deletedAt: iSODateString.optional(), billingTime: iSOTimeString, billingTimezone: tZ, numBillingRetries: z.number().optional(), delayBetweenRetries: z.number().optional(), orgName: z.string(), logo: z.string().optional(), myShopifyDomain: z.string().optional(), stripeAccessKey: z.string().optional(), numFailedCyclesBeforeCancel: z.number().optional(), initialSubscriptionImportComplete: z.boolean(), cancellationMessage: z.string().optional(), account: iOrganizationAccount, outOfStockItemRemovalEnabled: z.boolean().optional(), bundleOutOfStockAutoPauseEnabled: z.boolean().optional(), instantDigitalItemFulfillmentEnabled: z.boolean().optional()}); export const iCustomerRelationshipSellingOrgShallow = z.object({id: z.string(), createdDate: iSODateString, updatedDate: iSODateString, deletedAt: iSODateString.optional(), shopifyId: z.string().optional(), receivedFromShopifyDate: iSODateString.optional(), shopifyUpdateDate: iSODateString, email: z.string().optional(), phone: z.string().optional(), inferredPhone: z.string().optional(), firstName: z.string().optional(), lastName: z.string().optional(), isSuperUser: z.boolean().optional(), role: customerUserRole, __stripeCustomerId__: z.string().optional(), customerCurrency: currencyCode, orderCount: z.number(), customAttributes: z.object({}).optional(), totalSpent: bigIntString, hasLoggedIn: z.boolean().optional(), sellingOrganization: iOrganizationShallowWithIDs}); export const iPurchaseStateWithCustomerRelationship = z.object({id: z.string(), createdDate: iSODateString, updatedDate: iSODateString, deletedAt: iSODateString.optional(), totalFromLineItems: bigIntString, totalLineItemsDiscount: bigIntString, totalLineItemsAfterDiscount: bigIntString, totalShipping: bigIntString, totalDiscount: bigIntString, shopifyId: z.string().optional(), receivedFromShopifyDate: iSODateString.optional(), shopifyUpdateDate: iSODateString, purchaseStateStatus: purchaseStateStatus, createdViaCustomerPortal: z.boolean(), initialSubmissionDate: iSODateString, externalSubscriptionCreatedDate: iSODateString, cancelledAt: iSODateString, pausedAt: iSODateString, pauseReason: z.enum(["CREATION", "ROLLBACK", "CUSTOMER", "ADMIN", "API", "FLOW", "REVOKED_PAYMENT_METHOD", "AUTO_OUTOFSTOCK", "AUTO_ARCHIVEDLINEITEM", "AUTO_DELETEDLINEITEM", "AUTO_BILLINGFAILURE", "null"]).nullable(), externalSubscriptionCancelledAt: iSODateString, nextBillingDate: iSODateString, isRepeatCustomer: z.boolean(), sellingPlanId: z.string().optional(), currency: currencyCode, totalEstimatedTax: bigIntString.optional(), totalShippingDiscount: bigIntString.optional(), totalEstimatedNet: bigIntString, discounts: z.array(iPurchaseStateDiscount), shippingAddress: iMailingAddressJson, externalSubscriptionId: z.string().optional(), externalSubscriptionType: purchaseStateExternalSubscriptionType.optional(), externalSubscriptionStatus: purchaseStateStatus.optional(), originalExternalSubscriptionStatus: purchaseStateStatus.optional(), schedule: iSchedule, gifts: z.array(iGift).optional(), organization: iOrganization, pmtMth: iPaymentMethod, stLineItems: z.array(iPurchaseStateLineItem), custRel: iCustomerRelationshipSellingOrgShallow.optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Bulk Skip Purchases * * PUT /vendor/customer/{customerRelationshipId}/purchase-state/{customerPurchaseStateId}/bulk-skip */ export const updateApiVendorCustomerCustomerRelationshipIdPurchaseStateCustomerPurchaseStateIdBulkSkip = async (args: UpdateApiVendorCustomerCustomerRelationshipIdPurchaseStateCustomerPurchaseStateIdBulkSkipArgs, options?: UpdateApiVendorCustomerCustomerRelationshipIdPurchaseStateCustomerPurchaseStateIdBulkSkipOptions) => { const {baseUrl = "https://smartrr-dev.local.com", fetch: fetchFn = fetch, smartrrAccessToken} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (smartrrAccessToken !== undefined) headers.set("x-smartrr-access-token", smartrrAccessToken) const url = `${baseUrl.replace(/\/+$/, '')}/vendor/customer/${encodeURIComponent(String(args.customerRelationshipId))}/purchase-state/${encodeURIComponent(String(args.customerPurchaseStateId))}/bulk-skip${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "PUT", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(iPurchaseStateWithCustomerRelationship, await res.json()) };