UNPKG

chargebee

Version:

A library for integrating with Chargebee.

321 lines (320 loc) 13.7 kB
// Generated Zod schemas: Coupon // Actions: create, createForItems, updateForItems, list, update, copy // Do not edit manually – regenerate via sdk-generator import { z } from 'zod'; //Coupon.create const CreateCouponMetaDataSchema = z.looseObject({}); const CreateCouponBodySchema = z.looseObject({ id: z.string().max(100), name: z.string().max(50), invoice_name: z.string().max(100).optional(), discount_type: z .enum(['fixed_amount', 'percentage', 'offer_quantity']) .optional(), discount_amount: z.number().int().min(0).optional(), currency_code: z.string().max(3).optional(), discount_percentage: z.number().min(0.01).max(100).optional(), discount_quantity: z.number().int().min(1).optional(), apply_on: z.enum([ 'invoice_amount', 'specified_items_total', 'each_specified_item', 'each_unit_of_specified_items', ]), duration_type: z.enum(['one_time', 'forever', 'limited_period']).optional(), duration_month: z.number().int().min(1).max(240).optional(), valid_till: z.number().int().optional(), max_redemptions: z.number().int().min(1).optional(), invoice_notes: z.string().max(2000).optional(), meta_data: CreateCouponMetaDataSchema.optional(), included_in_mrr: z.boolean().optional(), period: z.number().int().min(1).optional(), period_unit: z.enum(['day', 'week', 'month', 'year']).optional(), plan_constraint: z.enum(['none', 'all', 'specific']).optional(), addon_constraint: z.enum(['none', 'all', 'specific']).optional(), plan_ids: z.array(z.string().max(100).optional()).optional(), addon_ids: z.array(z.string().max(100).optional()).optional(), status: z.enum(['active', 'archived']).optional(), }); export { CreateCouponBodySchema }; //Coupon.createForItems const CreateForItemsCouponMetaDataSchema = z.looseObject({}); const CreateForItemsCouponItemConstraintsSchema = z.object({ constraint: z.array(z.enum(['none', 'all', 'specific', 'criteria']).optional()), item_type: z.array(z.enum(['plan', 'addon', 'charge']).optional()), item_price_ids: z.array(z.array(z.string().optional()).optional()).optional(), }); const CreateForItemsCouponItemConstraintCriteriaSchema = z.object({ item_type: z.array(z.enum(['plan', 'addon', 'charge']).optional()).optional(), item_family_ids: z .array(z.array(z.string().optional()).optional()) .optional(), currencies: z.array(z.array(z.string().optional()).optional()).optional(), item_price_periods: z .array(z.array(z.string().optional()).optional()) .optional(), }); const CreateForItemsCouponCouponConstraintsSchema = z.object({ entity_type: z.array(z.enum(['customer']).optional()), type: z.array(z .enum([ 'max_redemptions', 'unique_by', 'existing_customer', 'new_customer', ]) .optional()), value: z.array(z.string().max(65000).optional()).optional(), }); const CreateForItemsCouponBodySchema = z.looseObject({ id: z.string().max(100), name: z.string().max(50), invoice_name: z.string().max(100).optional(), discount_type: z .enum(['fixed_amount', 'percentage', 'offer_quantity']) .optional(), discount_amount: z.number().int().min(0).optional(), currency_code: z.string().max(3).optional(), discount_percentage: z.number().min(0.01).max(100).optional(), discount_quantity: z.number().int().min(1).optional(), apply_on: z.enum([ 'invoice_amount', 'specified_items_total', 'each_specified_item', 'each_unit_of_specified_items', ]), duration_type: z.enum(['one_time', 'forever', 'limited_period']).optional(), duration_month: z.number().int().min(1).max(240).optional(), valid_from: z.number().int().optional(), valid_till: z.number().int().optional(), max_redemptions: z.number().int().min(1).optional(), invoice_notes: z.string().max(2000).optional(), meta_data: CreateForItemsCouponMetaDataSchema.optional(), included_in_mrr: z.boolean().optional(), period: z.number().int().min(1).optional(), period_unit: z.enum(['day', 'week', 'month', 'year']).optional(), status: z.enum(['active', 'archived']).optional(), item_constraints: CreateForItemsCouponItemConstraintsSchema.optional(), item_constraint_criteria: CreateForItemsCouponItemConstraintCriteriaSchema.optional(), coupon_constraints: CreateForItemsCouponCouponConstraintsSchema.optional(), }); export { CreateForItemsCouponBodySchema }; //Coupon.updateForItems const UpdateForItemsCouponMetaDataSchema = z.looseObject({}); const UpdateForItemsCouponItemConstraintsSchema = z.object({ constraint: z.array(z.enum(['none', 'all', 'specific', 'criteria']).optional()), item_type: z.array(z.enum(['plan', 'addon', 'charge']).optional()), item_price_ids: z.array(z.array(z.string().optional()).optional()).optional(), }); const UpdateForItemsCouponItemConstraintCriteriaSchema = z.object({ item_type: z.array(z.enum(['plan', 'addon', 'charge']).optional()).optional(), item_family_ids: z .array(z.array(z.string().optional()).optional()) .optional(), currencies: z.array(z.array(z.string().optional()).optional()).optional(), item_price_periods: z .array(z.array(z.string().optional()).optional()) .optional(), }); const UpdateForItemsCouponCouponConstraintsSchema = z.object({ entity_type: z.array(z.enum(['customer']).optional()), type: z.array(z .enum([ 'max_redemptions', 'unique_by', 'existing_customer', 'new_customer', ]) .optional()), value: z.array(z.string().max(65000).optional()).optional(), }); const UpdateForItemsCouponBodySchema = z.looseObject({ name: z.string().max(50).optional(), invoice_name: z.string().max(100).optional(), discount_type: z .enum(['fixed_amount', 'percentage', 'offer_quantity']) .optional(), discount_amount: z.number().int().min(0).optional(), currency_code: z.string().max(3).optional(), discount_percentage: z.number().min(0.01).max(100).optional(), discount_quantity: z.number().int().min(1).optional(), apply_on: z .enum([ 'invoice_amount', 'specified_items_total', 'each_specified_item', 'each_unit_of_specified_items', ]) .optional(), duration_type: z.enum(['one_time', 'forever', 'limited_period']).optional(), duration_month: z.number().int().min(1).max(240).optional(), valid_from: z.number().int().optional(), valid_till: z.number().int().optional(), max_redemptions: z.number().int().min(1).optional(), invoice_notes: z.string().max(2000).optional(), meta_data: UpdateForItemsCouponMetaDataSchema.optional(), included_in_mrr: z.boolean().optional(), period: z.number().int().min(1).optional(), period_unit: z.enum(['day', 'week', 'month', 'year']).optional(), item_constraints: UpdateForItemsCouponItemConstraintsSchema.optional(), item_constraint_criteria: UpdateForItemsCouponItemConstraintCriteriaSchema.optional(), coupon_constraints: UpdateForItemsCouponCouponConstraintsSchema.optional(), }); export { UpdateForItemsCouponBodySchema }; //Coupon.list const ListCouponIdSchema = z.object({ is: z.string().min(1).optional(), is_not: z.string().min(1).optional(), starts_with: z.string().min(1).optional(), in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(), not_in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(), }); const ListCouponNameSchema = z.object({ is: z.string().min(1).optional(), is_not: z.string().min(1).optional(), starts_with: z.string().min(1).optional(), in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(), not_in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(), }); const ListCouponDiscountTypeSchema = z.object({ is: z.enum(['fixed_amount', 'percentage', 'offer_quantity']).optional(), is_not: z.enum(['fixed_amount', 'percentage', 'offer_quantity']).optional(), in: z.enum(['fixed_amount', 'percentage', 'offer_quantity']).optional(), not_in: z.enum(['fixed_amount', 'percentage', 'offer_quantity']).optional(), }); const ListCouponDurationTypeSchema = z.object({ is: z.enum(['one_time', 'forever', 'limited_period']).optional(), is_not: z.enum(['one_time', 'forever', 'limited_period']).optional(), in: z.enum(['one_time', 'forever', 'limited_period']).optional(), not_in: z.enum(['one_time', 'forever', 'limited_period']).optional(), }); const ListCouponStatusSchema = z.object({ is: z.enum(['active', 'expired', 'archived', 'deleted', 'future']).optional(), is_not: z .enum(['active', 'expired', 'archived', 'deleted', 'future']) .optional(), in: z.enum(['active', 'expired', 'archived', 'deleted', 'future']).optional(), not_in: z .enum(['active', 'expired', 'archived', 'deleted', 'future']) .optional(), }); const ListCouponApplyOnSchema = z.object({ is: z .enum([ 'invoice_amount', 'specified_items_total', 'each_specified_item', 'each_unit_of_specified_items', ]) .optional(), is_not: z .enum([ 'invoice_amount', 'specified_items_total', 'each_specified_item', 'each_unit_of_specified_items', ]) .optional(), in: z .enum([ 'invoice_amount', 'specified_items_total', 'each_specified_item', 'each_unit_of_specified_items', ]) .optional(), not_in: z .enum([ 'invoice_amount', 'specified_items_total', 'each_specified_item', 'each_unit_of_specified_items', ]) .optional(), }); const ListCouponCreatedAtSchema = z.object({ after: z.string().regex(RegExp('^\\d{10}$')).optional(), before: z.string().regex(RegExp('^\\d{10}$')).optional(), on: z.string().regex(RegExp('^\\d{10}$')).optional(), between: z.string().regex(RegExp('^\\[\\d{10},\\d{10}\\]$')).optional(), }); const ListCouponUpdatedAtSchema = z.object({ after: z.string().regex(RegExp('^\\d{10}$')).optional(), before: z.string().regex(RegExp('^\\d{10}$')).optional(), on: z.string().regex(RegExp('^\\d{10}$')).optional(), between: z.string().regex(RegExp('^\\[\\d{10},\\d{10}\\]$')).optional(), }); const ListCouponSortBySchema = z.looseObject({ asc: z.enum(['created_at']).optional(), desc: z.enum(['created_at']).optional(), }); const ListCouponCurrencyCodeSchema = z.object({ is: z.string().min(1).optional(), is_not: z.string().min(1).optional(), starts_with: z.string().min(1).optional(), in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(), not_in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(), }); const ListCouponApplicableItemPriceIdsSchema = z.object({ is: z.string().min(1).optional(), in: z.string().regex(RegExp('^\\[(.*)(,.*)*\\]$')).optional(), }); const ListCouponBodySchema = z.looseObject({ limit: z.number().int().min(1).max(100).optional(), offset: z.string().max(1000).optional(), id: ListCouponIdSchema.optional(), name: ListCouponNameSchema.optional(), discount_type: ListCouponDiscountTypeSchema.optional(), duration_type: ListCouponDurationTypeSchema.optional(), status: ListCouponStatusSchema.optional(), apply_on: ListCouponApplyOnSchema.optional(), created_at: ListCouponCreatedAtSchema.optional(), updated_at: ListCouponUpdatedAtSchema.optional(), sort_by: ListCouponSortBySchema.optional(), currency_code: ListCouponCurrencyCodeSchema.optional(), applicable_item_price_ids: ListCouponApplicableItemPriceIdsSchema.optional(), }); export { ListCouponBodySchema }; //Coupon.update const UpdateCouponMetaDataSchema = z.looseObject({}); const UpdateCouponBodySchema = z.looseObject({ name: z.string().max(50).optional(), invoice_name: z.string().max(100).optional(), discount_type: z .enum(['fixed_amount', 'percentage', 'offer_quantity']) .optional(), discount_amount: z.number().int().min(0).optional(), currency_code: z.string().max(3).optional(), discount_percentage: z.number().min(0.01).max(100).optional(), discount_quantity: z.number().int().min(1).optional(), apply_on: z .enum([ 'invoice_amount', 'specified_items_total', 'each_specified_item', 'each_unit_of_specified_items', ]) .optional(), duration_type: z.enum(['one_time', 'forever', 'limited_period']).optional(), duration_month: z.number().int().min(1).max(240).optional(), valid_till: z.number().int().optional(), max_redemptions: z.number().int().min(1).optional(), invoice_notes: z.string().max(2000).optional(), meta_data: UpdateCouponMetaDataSchema.optional(), included_in_mrr: z.boolean().optional(), period: z.number().int().min(1).optional(), period_unit: z.enum(['day', 'week', 'month', 'year']).optional(), plan_constraint: z.enum(['none', 'all', 'specific']).optional(), addon_constraint: z.enum(['none', 'all', 'specific']).optional(), plan_ids: z.array(z.string().max(100).optional()).optional(), addon_ids: z.array(z.string().max(100).optional()).optional(), }); export { UpdateCouponBodySchema }; //Coupon.copy const CopyCouponBodySchema = z.looseObject({ from_site: z.string().max(50), id_at_from_site: z.string().max(100), id: z.string().max(100).optional(), for_site_merging: z.boolean().default(false).optional(), }); export { CopyCouponBodySchema };