{"version":3,"sources":["../src/resources/flex_promotions.ts"],"names":["ApiResource"],"mappings":"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","file":"chunk-TE54DOJ6.cjs","sourcesContent":["import type { QueryParamsList, QueryParamsRetrieve } from '../query'\nimport type { ListResponse, Resource, ResourceCreate, ResourceId, ResourceRel, ResourceSort, /* ResourceFilter */ ResourcesConfig, ResourceUpdate, } from '../resource'\nimport { ApiResource } from '../resource'\nimport type { Attachment } from './attachments'\nimport type { CouponCodesPromotionRule, CouponCodesPromotionRuleType } from './coupon_codes_promotion_rules'\nimport type { Coupon } from './coupons'\nimport type { EventStore } from './event_stores'\nimport type { Event } from './events'\nimport type { Tag, TagType } from './tags'\nimport type { Version } from './versions'\n\n\ntype FlexPromotionType = 'flex_promotions'\ntype FlexPromotionRel = ResourceRel & { type: FlexPromotionType }\ntype CouponCodesPromotionRuleRel = ResourceRel & { type: CouponCodesPromotionRuleType }\ntype TagRel = ResourceRel & { type: TagType }\n\n\nexport type FlexPromotionSort = Pick<FlexPromotion, 'id' | 'name' | 'exclusive' | 'priority' | 'starts_at' | 'expires_at' | 'total_usage_limit' | 'total_usage_count' | 'disabled_at'> & ResourceSort\n// export type FlexPromotionFilter = Pick<FlexPromotion, 'id' | 'name' | 'exclusive' | 'priority' | 'starts_at' | 'expires_at' | 'total_usage_limit' | 'total_usage_count' | 'rules' | 'disabled_at'> & ResourceFilter\n\n\ninterface FlexPromotion extends Resource {\n\t\n\treadonly type: FlexPromotionType\n\n\t/** \n\t * The promotion's internal name.\n\t * @example ```\"Personal promotion\"```\n\t */\n\tname: string\n\t/** \n\t * Indicates if the promotion will be applied exclusively, based on its priority score.\n\t * @example ```true```\n\t */\n\texclusive?: boolean | null\n\t/** \n\t * The priority assigned to the promotion (lower means higher priority).\n\t * @example ```2```\n\t */\n\tpriority?: number | null\n\t/** \n\t * The activation date/time of this promotion.\n\t * @example ```\"2018-01-01T12:00:00.000Z\"```\n\t */\n\tstarts_at: string\n\t/** \n\t * The expiration date/time of this promotion (must be after starts_at).\n\t * @example ```\"2018-01-02T12:00:00.000Z\"```\n\t */\n\texpires_at: string\n\t/** \n\t * The total number of times this promotion can be applied. When 'null' it means promotion can be applied infinite times.\n\t * @example ```5```\n\t */\n\ttotal_usage_limit?: number | null\n\t/** \n\t * The number of times this promotion has been applied.\n\t * @example ```2```\n\t */\n\ttotal_usage_count?: number | null\n\t/** \n\t * Indicates if the promotion is active (enabled and not expired).\n\t * @example ```true```\n\t */\n\tactive?: boolean | null\n\t/** \n\t * The promotion status. One of 'disabled', 'expired', 'pending', 'active', or 'inactive'.\n\t * @example ```\"pending\"```\n\t */\n\tstatus?: 'disabled' | 'expired' | 'pending' | 'active' | 'inactive' | null\n\t/** \n\t * The discount rule to be applied.\n\t * @example ```{}```\n\t */\n\trules: Record<string, any>\n\t/** \n\t * The rule outcomes.\n\t * @example ```[]```\n\t */\n\trule_outcomes?: Record<string, any> | null\n\t/** \n\t * Time at which this resource was disabled.\n\t * @example ```\"2018-01-01T12:00:00.000Z\"```\n\t */\n\tdisabled_at?: string | null\n\t/** \n\t * The payload used to evaluate the rules.\n\t * @example ```{}```\n\t */\n\tresource_payload?: Record<string, any> | null\n\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRule | null\n\tcoupons?: Coupon[] | null\n\tattachments?: Attachment[] | null\n\tevents?: Event[] | null\n\ttags?: Tag[] | null\n\tversions?: Version[] | null\n\tevent_stores?: EventStore[] | null\n\n}\n\n\ninterface FlexPromotionCreate extends ResourceCreate {\n\t\n\t/** \n\t * The promotion's internal name.\n\t * @example ```\"Personal promotion\"```\n\t */\n\tname: string\n\t/** \n\t * Indicates if the promotion will be applied exclusively, based on its priority score.\n\t * @example ```true```\n\t */\n\texclusive?: boolean | null\n\t/** \n\t * The priority assigned to the promotion (lower means higher priority).\n\t * @example ```2```\n\t */\n\tpriority?: number | null\n\t/** \n\t * The activation date/time of this promotion.\n\t * @example ```\"2018-01-01T12:00:00.000Z\"```\n\t */\n\tstarts_at: string\n\t/** \n\t * The expiration date/time of this promotion (must be after starts_at).\n\t * @example ```\"2018-01-02T12:00:00.000Z\"```\n\t */\n\texpires_at: string\n\t/** \n\t * The total number of times this promotion can be applied. When 'null' it means promotion can be applied infinite times.\n\t * @example ```5```\n\t */\n\ttotal_usage_limit?: number | null\n\t/** \n\t * The discount rule to be applied.\n\t * @example ```{}```\n\t */\n\trules: Record<string, any>\n\t/** \n\t * Send this attribute if you want to mark this resource as disabled.\n\t * @example ```true```\n\t */\n\t_disable?: boolean | null\n\t/** \n\t * Send this attribute if you want to mark this resource as enabled.\n\t * @example ```true```\n\t */\n\t_enable?: boolean | null\n\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel | null\n\ttags?: TagRel[] | null\n\n}\n\n\ninterface FlexPromotionUpdate extends ResourceUpdate {\n\t\n\t/** \n\t * The promotion's internal name.\n\t * @example ```\"Personal promotion\"```\n\t */\n\tname?: string | null\n\t/** \n\t * Indicates if the promotion will be applied exclusively, based on its priority score.\n\t * @example ```true```\n\t */\n\texclusive?: boolean | null\n\t/** \n\t * The priority assigned to the promotion (lower means higher priority).\n\t * @example ```2```\n\t */\n\tpriority?: number | null\n\t/** \n\t * The activation date/time of this promotion.\n\t * @example ```\"2018-01-01T12:00:00.000Z\"```\n\t */\n\tstarts_at?: string | null\n\t/** \n\t * The expiration date/time of this promotion (must be after starts_at).\n\t * @example ```\"2018-01-02T12:00:00.000Z\"```\n\t */\n\texpires_at?: string | null\n\t/** \n\t * The total number of times this promotion can be applied. When 'null' it means promotion can be applied infinite times.\n\t * @example ```5```\n\t */\n\ttotal_usage_limit?: number | null\n\t/** \n\t * The discount rule to be applied.\n\t * @example ```{}```\n\t */\n\trules?: Record<string, any> | null\n\t/** \n\t * Send this attribute if you want to mark this resource as disabled.\n\t * @example ```true```\n\t */\n\t_disable?: boolean | null\n\t/** \n\t * Send this attribute if you want to mark this resource as enabled.\n\t * @example ```true```\n\t */\n\t_enable?: boolean | null\n\t/** \n\t * Comma separated list of tags to be added. Duplicates, invalid and non existing ones are discarded. Cannot be passed by sales channels.\n\t */\n\t_add_tags?: string | null\n\t/** \n\t * Comma separated list of tags to be removed. Duplicates, invalid and non existing ones are discarded. Cannot be passed by sales channels.\n\t */\n\t_remove_tags?: string | null\n\n\tcoupon_codes_promotion_rule?: CouponCodesPromotionRuleRel | null\n\ttags?: TagRel[] | null\n\n}\n\n\nclass FlexPromotions extends ApiResource<FlexPromotion> {\n\n\tstatic readonly TYPE: FlexPromotionType = 'flex_promotions' as const\n\n\tasync create(resource: FlexPromotionCreate, params?: QueryParamsRetrieve<FlexPromotion>, options?: ResourcesConfig): Promise<FlexPromotion> {\n\t\treturn this.resources.create<FlexPromotionCreate, FlexPromotion>({ ...resource, type: FlexPromotions.TYPE }, params, options)\n\t}\n\n\tasync update(resource: FlexPromotionUpdate, params?: QueryParamsRetrieve<FlexPromotion>, options?: ResourcesConfig): Promise<FlexPromotion> {\n\t\treturn this.resources.update<FlexPromotionUpdate, FlexPromotion>({ ...resource, type: FlexPromotions.TYPE }, params, options)\n\t}\n\n\tasync delete(id: string | ResourceId, options?: ResourcesConfig): Promise<void> {\n\t\tawait this.resources.delete((typeof id === 'string')? { id, type: FlexPromotions.TYPE } : id, options)\n\t}\n\n\tasync coupon_codes_promotion_rule(flexPromotionId: string | FlexPromotion, params?: QueryParamsRetrieve<CouponCodesPromotionRule>, options?: ResourcesConfig): Promise<CouponCodesPromotionRule> {\n\t\tconst _flexPromotionId = (flexPromotionId as FlexPromotion).id || flexPromotionId as string\n\t\treturn this.resources.fetch<CouponCodesPromotionRule>({ type: 'coupon_codes_promotion_rules' }, `flex_promotions/${_flexPromotionId}/coupon_codes_promotion_rule`, params, options) as unknown as CouponCodesPromotionRule\n\t}\n\n\tasync coupons(flexPromotionId: string | FlexPromotion, params?: QueryParamsList<Coupon>, options?: ResourcesConfig): Promise<ListResponse<Coupon>> {\n\t\tconst _flexPromotionId = (flexPromotionId as FlexPromotion).id || flexPromotionId as string\n\t\treturn this.resources.fetch<Coupon>({ type: 'coupons' }, `flex_promotions/${_flexPromotionId}/coupons`, params, options) as unknown as ListResponse<Coupon>\n\t}\n\n\tasync attachments(flexPromotionId: string | FlexPromotion, params?: QueryParamsList<Attachment>, options?: ResourcesConfig): Promise<ListResponse<Attachment>> {\n\t\tconst _flexPromotionId = (flexPromotionId as FlexPromotion).id || flexPromotionId as string\n\t\treturn this.resources.fetch<Attachment>({ type: 'attachments' }, `flex_promotions/${_flexPromotionId}/attachments`, params, options) as unknown as ListResponse<Attachment>\n\t}\n\n\tasync events(flexPromotionId: string | FlexPromotion, params?: QueryParamsList<Event>, options?: ResourcesConfig): Promise<ListResponse<Event>> {\n\t\tconst _flexPromotionId = (flexPromotionId as FlexPromotion).id || flexPromotionId as string\n\t\treturn this.resources.fetch<Event>({ type: 'events' }, `flex_promotions/${_flexPromotionId}/events`, params, options) as unknown as ListResponse<Event>\n\t}\n\n\tasync tags(flexPromotionId: string | FlexPromotion, params?: QueryParamsList<Tag>, options?: ResourcesConfig): Promise<ListResponse<Tag>> {\n\t\tconst _flexPromotionId = (flexPromotionId as FlexPromotion).id || flexPromotionId as string\n\t\treturn this.resources.fetch<Tag>({ type: 'tags' }, `flex_promotions/${_flexPromotionId}/tags`, params, options) as unknown as ListResponse<Tag>\n\t}\n\n\tasync versions(flexPromotionId: string | FlexPromotion, params?: QueryParamsList<Version>, options?: ResourcesConfig): Promise<ListResponse<Version>> {\n\t\tconst _flexPromotionId = (flexPromotionId as FlexPromotion).id || flexPromotionId as string\n\t\treturn this.resources.fetch<Version>({ type: 'versions' }, `flex_promotions/${_flexPromotionId}/versions`, params, options) as unknown as ListResponse<Version>\n\t}\n\n\tasync event_stores(flexPromotionId: string | FlexPromotion, params?: QueryParamsList<EventStore>, options?: ResourcesConfig): Promise<ListResponse<EventStore>> {\n\t\tconst _flexPromotionId = (flexPromotionId as FlexPromotion).id || flexPromotionId as string\n\t\treturn this.resources.fetch<EventStore>({ type: 'event_stores' }, `flex_promotions/${_flexPromotionId}/event_stores`, params, options) as unknown as ListResponse<EventStore>\n\t}\n\n\tasync _disable(id: string | FlexPromotion, params?: QueryParamsRetrieve<FlexPromotion>, options?: ResourcesConfig): Promise<FlexPromotion> {\n\t\treturn this.resources.update<FlexPromotionUpdate, FlexPromotion>({ id: (typeof id === 'string')? id: id.id, type: FlexPromotions.TYPE, _disable: true }, params, options)\n\t}\n\n\tasync _enable(id: string | FlexPromotion, params?: QueryParamsRetrieve<FlexPromotion>, options?: ResourcesConfig): Promise<FlexPromotion> {\n\t\treturn this.resources.update<FlexPromotionUpdate, FlexPromotion>({ id: (typeof id === 'string')? id: id.id, type: FlexPromotions.TYPE, _enable: true }, params, options)\n\t}\n\n\tasync _add_tags(id: string | FlexPromotion, triggerValue: string, params?: QueryParamsRetrieve<FlexPromotion>, options?: ResourcesConfig): Promise<FlexPromotion> {\n\t\treturn this.resources.update<FlexPromotionUpdate, FlexPromotion>({ id: (typeof id === 'string')? id: id.id, type: FlexPromotions.TYPE, _add_tags: triggerValue }, params, options)\n\t}\n\n\tasync _remove_tags(id: string | FlexPromotion, triggerValue: string, params?: QueryParamsRetrieve<FlexPromotion>, options?: ResourcesConfig): Promise<FlexPromotion> {\n\t\treturn this.resources.update<FlexPromotionUpdate, FlexPromotion>({ id: (typeof id === 'string')? id: id.id, type: FlexPromotions.TYPE, _remove_tags: triggerValue }, params, options)\n\t}\n\n\n\tisFlexPromotion(resource: any): resource is FlexPromotion {\n\t\treturn resource.type && (resource.type === FlexPromotions.TYPE)\n\t}\n\n\n\trelationship(id: string | ResourceId | null): FlexPromotionRel {\n\t\treturn super.relationshipOneToOne<FlexPromotionRel>(id)\n\t}\n\n\trelationshipToMany(...ids: string[]): FlexPromotionRel[] {\n\t\treturn super.relationshipOneToMany<FlexPromotionRel>(...ids)\n\t}\n\n\n\ttype(): FlexPromotionType {\n\t\treturn FlexPromotions.TYPE\n\t}\n\n}\n\n\nconst instance = new FlexPromotions()\nexport default instance\n\nexport type { FlexPromotion, FlexPromotionCreate, FlexPromotions, FlexPromotionType, FlexPromotionUpdate }\n"]}