NewLoyaltyProgramInput
input type
Create-input for a LoyaltyProgram. The tenant is derived SERVER-SIDE; currency is EXPLICIT + IMMUTABLE (ISO-4217, minor-unit-registered); startAt is kit-stamped NOW when omitted; the ACTIVE cap (≤ 8 per group) gates the create; rule arrays are each ≤ 8 rows with sane predicates and unique tier names.
Fields
| Field | Type | Required | Notes |
|---|---|---|---|
caption | String | no | Optional: when omitted the per-type default applies — the phrase loyalty program <currency>; when supplied it must be non-blank. |
currency | String String! | yes | IMMUTABLE at birth — the earn/redeem currency anchor. |
earnRate | LoyaltyRateInput LoyaltyRateInput! | yes | No further notes. |
redeemRate | LoyaltyRateInput LoyaltyRateInput! | yes | No further notes. |
earnMultipliers | LoyaltyEarnMultiplierInput [LoyaltyEarnMultiplierInput!] | no | No further notes. |
bonusWindows | LoyaltyBonusWindowInput [LoyaltyBonusWindowInput!] | no | No further notes. |
tiers | LoyaltyTierInput [LoyaltyTierInput!] | no | No further notes. |
organizationIds | ID [ID!] | no | The canned-pool selection — ABSENT = every org in the group. |
startAt | String | no | Omitted = kit-stamped NOW; IMMUTABLE once born. |
endAt | String | no | ABSENT = evergreen; must lie strictly after the window start. |