/** * @example * { * pid: "pid", * name: "name" * } */ export interface CreateTierGroupRequest { /** Loyalty Program ID */ pid: string; /** Select real_time to downgrade tier on real time balance updates. Select membership_anniversary to downgrade tier on subscription anniversary. Select tier_anniversary to downgrade tier on tier anniversary. */ downgradeStrategy?: CreateTierGroupRequest.DowngradeStrategy; /** Name of the tier group */ name: string; /** Additional metadata for the tier group. */ meta?: CreateTierGroupRequest.Meta; /** Order of the tiers in the group in ascending order */ tierOrder?: string[]; /** Select real_time to upgrade tier on real time balance updates. Select membership_anniversary to upgrade tier on subscription anniversary. Select tier_anniversary to upgrade tier on tier anniversary. */ upgradeStrategy?: CreateTierGroupRequest.UpgradeStrategy; /** Schedule configuration for tier upgrades. Required when upgradeStrategy is set to a schedule-based strategy. */ upgradeSchedule?: CreateTierGroupRequest.UpgradeSchedule; /** Schedule configuration for tier downgrades. Required when downgradeStrategy is set to a schedule-based strategy. */ downgradeSchedule?: CreateTierGroupRequest.DowngradeSchedule; } export declare namespace CreateTierGroupRequest { /** Select real_time to downgrade tier on real time balance updates. Select membership_anniversary to downgrade tier on subscription anniversary. Select tier_anniversary to downgrade tier on tier anniversary. */ const DowngradeStrategy: { readonly RealTime: "real_time"; readonly MembershipAnniversary: "membership_anniversary"; readonly TierAnniversary: "tier_anniversary"; }; type DowngradeStrategy = (typeof DowngradeStrategy)[keyof typeof DowngradeStrategy]; /** * Additional metadata for the tier group. */ interface Meta { /** Indicates whether the tier group is internal. */ isInternal?: boolean | undefined; /** Accepts any additional properties */ [key: string]: any; } /** Select real_time to upgrade tier on real time balance updates. Select membership_anniversary to upgrade tier on subscription anniversary. Select tier_anniversary to upgrade tier on tier anniversary. */ const UpgradeStrategy: { readonly RealTime: "real_time"; readonly MembershipAnniversary: "membership_anniversary"; readonly TierAnniversary: "tier_anniversary"; }; type UpgradeStrategy = (typeof UpgradeStrategy)[keyof typeof UpgradeStrategy]; /** * Schedule configuration for tier upgrades. Required when upgradeStrategy is set to a schedule-based strategy. */ interface UpgradeSchedule { /** Duration value for the schedule. */ durationValue?: number | undefined; /** Duration unit for the schedule. */ durationUnit?: UpgradeSchedule.DurationUnit | undefined; /** Modifier for the duration. */ durationModifier?: UpgradeSchedule.DurationModifier | undefined; /** Scheduled date in DD/MM format. */ scheduledDate?: string | undefined; } namespace UpgradeSchedule { /** Duration unit for the schedule. */ const DurationUnit: { readonly Day: "day"; readonly Week: "week"; readonly Month: "month"; readonly Year: "year"; }; type DurationUnit = (typeof DurationUnit)[keyof typeof DurationUnit]; /** Modifier for the duration. */ const DurationModifier: { readonly StartOfPeriod: "start_of_period"; readonly EndOfPeriod: "end_of_period"; }; type DurationModifier = (typeof DurationModifier)[keyof typeof DurationModifier]; } /** * Schedule configuration for tier downgrades. Required when downgradeStrategy is set to a schedule-based strategy. */ interface DowngradeSchedule { /** Duration value for the schedule. */ durationValue?: number | undefined; /** Duration unit for the schedule. */ durationUnit?: DowngradeSchedule.DurationUnit | undefined; /** Modifier for the duration. */ durationModifier?: DowngradeSchedule.DurationModifier | undefined; /** Scheduled date in DD/MM format. */ scheduledDate?: string | undefined; } namespace DowngradeSchedule { /** Duration unit for the schedule. */ const DurationUnit: { readonly Day: "day"; readonly Week: "week"; readonly Month: "month"; readonly Year: "year"; }; type DurationUnit = (typeof DurationUnit)[keyof typeof DurationUnit]; /** Modifier for the duration. */ const DurationModifier: { readonly StartOfPeriod: "start_of_period"; readonly EndOfPeriod: "end_of_period"; }; type DurationModifier = (typeof DurationModifier)[keyof typeof DurationModifier]; } }