n8n-nodes-base
Version:
Base nodes of n8n
29 lines (27 loc) • 3.29 kB
JavaScript
/**
* Paddle Node - Version 1 - Zod Schema
* Discriminator: resource=coupon, operation=create
*
* Use .parse() for strict validation or .safeParse() for error handling.
*
* Schema helpers (z, expressionSchema, etc.) are passed as parameters
* by the schema-validator, not imported from external files.
*
* @generated - CommonJS JavaScript for runtime loading
*/
module.exports = function getSchema({ parameters, z, expressionSchema, stringOrExpression, numberOrExpression, booleanOrExpression, resourceLocatorValueSchema, resourceMapperValueSchema, filterValueSchema, assignmentCollectionValueSchema, iDataObjectSchema, resolveSchema }) {
return z.object({
parameters: z.object({
resource: z.literal('coupon').default('coupon'),
operation: z.literal('create').default('create'),
couponType: resolveSchema({ parameters, schema: z.union([z.literal('checkout'), z.literal('product'), expressionSchema]), required: false, displayOptions: {"show":{"jsonParameters":[false]}}, defaults: {"jsonParameters":false} }),
productIds: resolveSchema({ parameters, schema: z.array(z.string()), required: false, displayOptions: {"show":{"couponType":["product"],"jsonParameters":[false]}}, defaults: {"couponType":"checkout","jsonParameters":false} }),
discountType: resolveSchema({ parameters, schema: z.union([z.literal('flat'), z.literal('percentage'), expressionSchema]), required: false, displayOptions: {"show":{"jsonParameters":[false]}}, defaults: {"jsonParameters":false} }),
discountAmount: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"discountType":["flat","percentage"],"jsonParameters":[false]}}, defaults: {"discountType":"flat","jsonParameters":false} }),
currency: resolveSchema({ parameters, schema: z.union([z.literal('ARS'), z.literal('AUD'), z.literal('BRL'), z.literal('CAD'), z.literal('CHF'), z.literal('CNY'), z.literal('CZK'), z.literal('DKK'), z.literal('EUR'), z.literal('GBP'), z.literal('HKD'), z.literal('HUF'), z.literal('INR'), z.literal('JPY'), z.literal('KRW'), z.literal('MXN'), z.literal('NOK'), z.literal('NZD'), z.literal('PLN'), z.literal('RUB'), z.literal('SEK'), z.literal('SGD'), z.literal('THB'), z.literal('TWD'), z.literal('USD'), z.literal('ZAR'), expressionSchema]), required: false, displayOptions: {"show":{"discountType":["flat"],"jsonParameters":[false]}}, defaults: {"discountType":"flat","jsonParameters":false} }),
jsonParameters: booleanOrExpression.optional(),
additionalFieldsJson: resolveSchema({ parameters, schema: z.union([iDataObjectSchema, z.string()]), required: false, displayOptions: {"show":{"jsonParameters":[true]}}, defaults: {"jsonParameters":false} }),
additionalFields: resolveSchema({ parameters, schema: z.object({ allowedUses: numberOrExpression.optional(), couponCode: stringOrExpression.optional(), couponPrefix: stringOrExpression.optional(), description: stringOrExpression.optional(), expires: stringOrExpression.optional(), group: stringOrExpression.optional(), numberOfCoupons: numberOrExpression.optional(), recurring: booleanOrExpression.optional() }), required: false, displayOptions: {"show":{"jsonParameters":[false]}}, defaults: {"jsonParameters":false} }),
}).optional(),
});
};