import type { Tag } from './Tag'; import type { PromotionAssignmentInformation } from './PromotionAssignmentInformation'; /** * @type Promotion: Document representing a promotion. Unless otherwise stated, attributes of this document are not supported when using the Open Commerce API to update multiple promotions at once. * * @property archived: Determines if this promotion is archived. This attribute is allowed to be updated when using the Open Commerce API to update multiple promotions at once. * * @property assignmentInformation: Information about the assignments and assignment schedules of this promotion. * * @property creationDate: Returns the value of attribute \'creationDate\'. * * @property currencyCode: The ISO 4217 mnemonic code of the currency this promotion is restricted to. If not populated, then there is no currency restriction on the promotion. * - **Max Length:** 3 * * @property disableGloballyExcluded: Determines if this promotion ignores the global product exclusions for promotions. * * @property enabled: Determines if this promotion is enabled. This attribute is allowed to be updated when using the Open Commerce API to update multiple promotions at once. * * @property exclusivity: Determines if the promotion can be combined with other promotions of the same promotion class or if it cannot be combined with any other promotions. This attribute is allowed to be updated when using the Open Commerce API to update multiple promotions at once. * * @property id: The ID for the promotion. * * @property lastModified: Returns the value of attribute \'lastModified\'. * * @property name: The user supplied name of this promotion, which can be localized. * * @property promotionClass: The class of the promotion. If the promotion class is modified, then the promotion rule and all of its values, such as whether or not to disable global product exclusions, are reset. * * @property tags: Returns the list of tags assigned to this promotion. If used to set the tags on a promotion, the promotion will only have the tags passed in the input. Any existing tags are removed. * */ export type Promotion = { archived?: boolean; assignmentInformation?: PromotionAssignmentInformation; creationDate?: string; currencyCode?: string; disableGloballyExcluded?: boolean; enabled?: boolean; exclusivity: PromotionExclusivityEnum; id: string; lastModified?: string; name?: { [key: string]: string; }; promotionClass?: PromotionPromotionClassEnum; tags?: Array; } & { [key: string]: any; }; export type PromotionExclusivityEnum = 'no' | 'class' | 'global'; export type PromotionPromotionClassEnum = 'product' | 'shipping' | 'order';