UNPKG

@devx-commerce/plugin-loyalty

Version:

A starter for Medusa plugins.

128 lines 9.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.adminEventRouteMiddlewares = exports.updateEventDTO = exports.EventDTO = exports.createEventDTO = exports.listEventsQueryDTO = void 0; const zod_1 = require("zod"); const error_handler_1 = require("../../../utils/error-handler"); // Query validation schema for list events exports.listEventsQueryDTO = zod_1.z.object({ limit: zod_1.z .string() .transform((val) => parseInt(val, 10)) .pipe(zod_1.z .number() .min(1, "Limit must be at least 1") .max(100, "Limit cannot exceed 100")) .optional() .default("10"), offset: zod_1.z .string() .transform((val) => parseInt(val, 10)) .pipe(zod_1.z.number().min(0, "Offset must be at least 0")) .optional() .default("0"), status: zod_1.z.enum(["active", "draft"]).optional(), trigger_event: zod_1.z .enum([ "order_placed", "order_delivered", "referral_order_placed", "referral_link_redeemed", ]) .optional(), search: zod_1.z.string().min(1, "Search term must not be empty").optional(), sort_by: zod_1.z .enum(["created_at", "updated_at", "name", "status"]) .optional() .default("created_at"), sort_order: zod_1.z.enum(["ASC", "DESC"]).optional().default("DESC"), }); // DTOs exports.createEventDTO = zod_1.z.object({ name: zod_1.z.string().min(1, "Name is required"), description: zod_1.z.string().optional(), status: zod_1.z.enum(["active", "draft"]).default("draft"), expiry_days: zod_1.z .number() .min(1, "Expiry days must be greater than 0") .optional(), earn_per_order: zod_1.z .number() .min(0, "Earn per order must be greater than or equal to 0") .optional(), earn_per_order_type: zod_1.z.enum(["percentage", "fixed"]).optional(), max_earn_per_order: zod_1.z .number() .min(0, "Maximum earn must be greater than or equal to 0") .optional(), min_order_value: zod_1.z .number() .min(0, "Minimum order value must be greater than or equal to 0") .optional(), referee_bonus_per_order: zod_1.z .number() .min(0, "Referee bonus must be greater than or equal to 0") .optional(), referee_bonus_per_order_type: zod_1.z.enum(["percentage", "fixed"]).optional(), referrer_bonus_per_order: zod_1.z .number() .min(0, "Referral bonus must be greater than or equal to 0") .optional(), referrer_bonus_per_order_type: zod_1.z.enum(["percentage", "fixed"]).optional(), trigger_event: zod_1.z.enum([ "order_placed", "order_delivered", "referral_order_placed", "referral_link_redeemed", ]), }); exports.EventDTO = zod_1.z.object({ id: zod_1.z.string(), name: zod_1.z.string(), description: zod_1.z.string().optional(), status: zod_1.z.enum(["active", "draft"]), expiry_days: zod_1.z.number().min(1).optional(), earn_per_order: zod_1.z.number().min(0).optional(), earn_per_order_type: zod_1.z.enum(["percentage", "fixed"]).optional(), max_earn_per_order: zod_1.z.number().min(0).optional(), min_order_value: zod_1.z.number().min(0).optional(), referee_bonus_per_order: zod_1.z.number().min(0).optional(), referee_bonus_per_order_type: zod_1.z.enum(["percentage", "fixed"]).optional(), referrer_bonus_per_order: zod_1.z.number().min(0).optional(), referrer_bonus_per_order_type: zod_1.z.enum(["percentage", "fixed"]).optional(), trigger_event: zod_1.z.enum([ "order_placed", "referral_link_clicked", "order_delivered", "referral_order_placed", ]), }); exports.updateEventDTO = exports.createEventDTO.partial(); // Middleware routes exports.adminEventRouteMiddlewares = [ { matcher: "/admin/event", method: "POST", middlewares: [(0, error_handler_1.createValidationMiddleware)(exports.createEventDTO)], }, { matcher: "/admin/event/:id", method: "PUT", middlewares: [(0, error_handler_1.createValidationMiddleware)(exports.updateEventDTO)], }, { matcher: "/admin/event/:id", method: "DELETE", middlewares: [], }, { matcher: "/admin/event/:id", method: "GET", middlewares: [], }, { matcher: "/admin/event", method: "GET", middlewares: [], }, ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvYWRtaW4vbG95YWx0eS1ldmVudC9taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDZCQUF3QjtBQUN4QixnRUFHc0M7QUFFdEMsMENBQTBDO0FBQzdCLFFBQUEsa0JBQWtCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN6QyxLQUFLLEVBQUUsT0FBQztTQUNMLE1BQU0sRUFBRTtTQUNSLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNyQyxJQUFJLENBQ0gsT0FBQztTQUNFLE1BQU0sRUFBRTtTQUNSLEdBQUcsQ0FBQyxDQUFDLEVBQUUsMEJBQTBCLENBQUM7U0FDbEMsR0FBRyxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQyxDQUN2QztTQUNBLFFBQVEsRUFBRTtTQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDaEIsTUFBTSxFQUFFLE9BQUM7U0FDTixNQUFNLEVBQUU7U0FDUixTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDckMsSUFBSSxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENBQUM7U0FDcEQsUUFBUSxFQUFFO1NBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUNmLE1BQU0sRUFBRSxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzlDLGFBQWEsRUFBRSxPQUFDO1NBQ2IsSUFBSSxDQUFDO1FBQ0osY0FBYztRQUNkLGlCQUFpQjtRQUNqQix1QkFBdUI7UUFDdkIsd0JBQXdCO0tBQ3pC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