import type { RedemptionLimits } from './RedemptionLimits'; import type { CouponSystemCodeConfig } from './CouponSystemCodeConfig'; /** * @type Coupon: Document representing a coupon. * * @property couponId: The ID of the coupon. * - **Min Length:** 1 * - **Max Length:** 256 * * @property creationDate: Returns the value of attribute \'creationDate\'. * * @property description: The description of the coupon. * - **Max Length:** 4000 * * @property enabled: A flag indicating whether the coupon is enabled. * * @property exportedCodeCount: The number of coupon codes attached to the coupon that have been issued (read only). * * @property lastModified: Returns the value of attribute \'lastModified\'. * * @property redemptionCount: The number of times the coupon has been redeemed (read only). The count is updated once per hour. * * @property redemptionLimits: The redemption limit per coupon code. * * @property singleCode: Single coupon code, only valid for Single Code type. * - **Min Length:** 1 * - **Max Length:** 256 * * @property systemCodesConfig: The configuration of system coupon codes, including prefix and number of codes. * * @property totalCodesCount: The total number of coupon codes associated with this coupon (read only). The count is updated once per hour. * * @property type: The type of coupon code. * */ export type Coupon = { couponId: string; creationDate?: string; description?: string; enabled: boolean; exportedCodeCount?: number; lastModified?: string; redemptionCount?: number; redemptionLimits?: RedemptionLimits; singleCode?: string; systemCodesConfig?: CouponSystemCodeConfig; totalCodesCount?: number; type: CouponTypeEnum; } & { [key: string]: any; }; export type CouponTypeEnum = 'single_code' | 'multiple_codes' | 'system_codes';