import { BaseFilterable } from "../../dal"; import { PromotionDTO } from "./promotion"; import { CreatePromotionRuleDTO, PromotionRuleDTO } from "./promotion-rule"; /** * The application method's possible types. */ export type ApplicationMethodTypeValues = "fixed" | "percentage"; /** * The application method's possible target types. */ export type ApplicationMethodTargetTypeValues = "order" | "shipping_methods" | "items"; /** * The application method's possible allocation values. */ export type ApplicationMethodAllocationValues = "each" | "across"; /** * The application method details. */ export interface ApplicationMethodDTO { /** * The ID of the application method. */ id: string; /** * The type of the application method indicating how * the associated promotion is applied. */ type?: ApplicationMethodTypeValues; /** * The target type of the application method indicating * whether the associated promotion is applied to the cart's items, * shipping methods, or the whole order. */ target_type?: ApplicationMethodTargetTypeValues; /** * The allocation value that indicates whether the associated promotion * is applied on each item in a cart or split between the items in the cart. */ allocation?: ApplicationMethodAllocationValues; /** * The discounted amount applied by the associated promotion based on the `type`. */ value?: number; /** * The currency code of the application method */ currency_code?: string; /** * The max quantity allowed in the cart for the associated promotion to be applied. */ max_quantity?: number | null; /** * The minimum quantity required for a `buyget` promotion to be applied. * For example, if the promotion is a "Buy 2 shirts get 1 free", the * value of this attribute is `2`. */ buy_rules_min_quantity?: number | null; /** * The quantity that results from matching the `buyget` promotion's condition. * For example, if the promotion is a "Buy 2 shirts get 1 free", the value * of this attribute is `1`. */ apply_to_quantity?: number | null; /** * The promotion of the application method. */ promotion?: PromotionDTO | string; /** * The target rules of the application method. */ target_rules?: PromotionRuleDTO[]; /** * The buy rules of the application method. */ buy_rules?: PromotionRuleDTO[]; } /** * The application method to be created. */ export interface CreateApplicationMethodDTO { /** * The type of the application method indicating how * the associated promotion is applied. */ type: ApplicationMethodTypeValues; /** * The target type of the application method indicating * whether the associated promotion is applied to the cart's items, * shipping methods, or the whole order. */ target_type: ApplicationMethodTargetTypeValues; /** * The allocation value that indicates whether the associated promotion * is applied on each item in a cart or split between the items in the cart. */ allocation?: ApplicationMethodAllocationValues; /** * The discounted amount applied by the associated promotion based on the `type`. */ value?: number; /** * Currency of the value to apply. */ currency_code?: string; /** * The max quantity allowed in the cart for the associated promotion to be applied. */ max_quantity?: number | null; /** * The minimum quantity required for a `buyget` promotion to be applied. * For example, if the promotion is a "Buy 2 shirts get 1 free", the * value of this attribute is `2`. */ buy_rules_min_quantity?: number | null; /** * The quantity that results from matching the `buyget` promotion's condition. * For example, if the promotion is a "Buy 2 shirts get 1 free", the value * of this attribute is `1`. */ apply_to_quantity?: number | null; /** * The promotion of the application method. */ promotion?: PromotionDTO | string; /** * The target rules of the application method. */ target_rules?: CreatePromotionRuleDTO[]; /** * The buy rules of the application method. */ buy_rules?: CreatePromotionRuleDTO[]; } /** * The attributes to update in the application method. */ export interface UpdateApplicationMethodDTO { /** * The ID of the application method. */ id?: string; /** * The type of the application method indicating how * the associated promotion is applied. */ type?: ApplicationMethodTypeValues; /** * The target type of the application method indicating * whether the associated promotion is applied to the cart's items, * shipping methods, or the whole order. */ target_type?: ApplicationMethodTargetTypeValues; /** * The allocation value that indicates whether the associated promotion * is applied on each item in a cart or split between the items in the cart. */ allocation?: ApplicationMethodAllocationValues; /** * The discounted amount applied by the associated promotion based on the `type`. */ value?: number; /** * The currency code of the promotions application */ currency_code?: string; /** * The max quantity allowed in the cart for the associated promotion to be applied. */ max_quantity?: number | null; /** * The minimum quantity required for a `buyget` promotion to be applied. * For example, if the promotion is a "Buy 2 shirts get 1 free", the * value of this attribute is `2`. */ buy_rules_min_quantity?: number | null; /** * The quantity that results from matching the `buyget` promotion's condition. * For example, if the promotion is a "Buy 2 shirts get 1 free", the value * of this attribute is `1`. */ apply_to_quantity?: number | null; /** * The promotion of the application method. */ promotion?: PromotionDTO | string; } /** * The filters to apply on the retrieved application methods. */ export interface FilterableApplicationMethodProps extends BaseFilterable { /** * The IDs to filter the application methods by. */ id?: string[]; /** * Filter the application methods by their type. */ type?: ApplicationMethodTypeValues[]; /** * Filter the application methods by their target type. */ target_type?: ApplicationMethodTargetTypeValues[]; /** * Filter the application methods by their allocation value. */ allocation?: ApplicationMethodAllocationValues[]; } //# sourceMappingURL=application-method.d.ts.map