@open-loyalty/mcp-server 1.3.1 → 1.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.js +22 -2
- package/dist/tools/achievement/index.d.ts +16 -16
- package/dist/tools/achievement/schemas.d.ts +16 -16
- package/dist/tools/campaign/index.js +9 -4
- package/dist/tools/points.js +13 -3
- package/dist/tools/reward/handlers.js +9 -2
- package/dist/tools/reward/index.d.ts +3 -3
- package/dist/tools/reward/index.js +8 -5
- package/dist/tools/reward/schemas.d.ts +3 -3
- package/dist/tools/reward/schemas.js +5 -4
- package/dist/tools/segment/index.js +5 -4
- package/dist/tools/tierset.d.ts +3 -30
- package/dist/tools/tierset.js +74 -38
- package/dist/tools/wallet-type.d.ts +219 -14
- package/dist/tools/wallet-type.js +244 -13
- package/dist/types/schemas/achievement.d.ts +6 -6
- package/dist/types/schemas/member.d.ts +2 -2
- package/dist/types/schemas/wallet-type.d.ts +298 -0
- package/dist/types/schemas/wallet-type.js +81 -0
- package/dist/utils/errors.js +2 -2
- package/package.json +1 -1
|
@@ -18,10 +18,11 @@ export const segmentToolDefinitions = [
|
|
|
18
18
|
{
|
|
19
19
|
name: "ol_segment_create",
|
|
20
20
|
title: "Create Segment",
|
|
21
|
-
description: "Create segment to group members.
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"Example
|
|
21
|
+
description: "Create segment to group members. " +
|
|
22
|
+
"⚠️ ONLY 'transaction_count' criterion type works reliably. 'tier' and 'points_balance' are REJECTED by the API. " +
|
|
23
|
+
"REQUIRED: name, parts array with criteria. " +
|
|
24
|
+
"Example for 5+ purchases: { name: 'Frequent Buyers', parts: [{ criteria: [{ type: 'transaction_count', min: 5 }] }], active: true }. " +
|
|
25
|
+
"Parts use OR logic (ANY part matches), criteria within parts use AND logic (ALL criteria must match).",
|
|
25
26
|
readOnly: false,
|
|
26
27
|
inputSchema: SegmentCreateInputSchema,
|
|
27
28
|
handler: segmentCreate,
|
package/dist/tools/tierset.d.ts
CHANGED
|
@@ -19,17 +19,6 @@ export declare const TierSetCreateInputSchema: {
|
|
|
19
19
|
attribute: "activeUnits" | "totalEarnedUnits" | "totalSpending" | "monthsSinceJoiningProgram" | "cumulatedEarnedUnits";
|
|
20
20
|
walletType?: string | undefined;
|
|
21
21
|
}>, "many">;
|
|
22
|
-
downgrade: z.ZodOptional<z.ZodObject<{
|
|
23
|
-
mode: z.ZodEnum<["none", "automatic", "x_days"]>;
|
|
24
|
-
days: z.ZodOptional<z.ZodNumber>;
|
|
25
|
-
}, "strip", z.ZodTypeAny, {
|
|
26
|
-
mode: "none" | "automatic" | "x_days";
|
|
27
|
-
days?: number | undefined;
|
|
28
|
-
}, {
|
|
29
|
-
mode: "none" | "automatic" | "x_days";
|
|
30
|
-
days?: number | undefined;
|
|
31
|
-
}>>;
|
|
32
|
-
active: z.ZodOptional<z.ZodBoolean>;
|
|
33
22
|
};
|
|
34
23
|
export declare const TierSetGetInputSchema: {
|
|
35
24
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
@@ -107,11 +96,6 @@ type TierSetCreateInput = {
|
|
|
107
96
|
attribute: string;
|
|
108
97
|
walletType?: string;
|
|
109
98
|
}[];
|
|
110
|
-
downgrade?: {
|
|
111
|
-
mode: string;
|
|
112
|
-
days?: number;
|
|
113
|
-
};
|
|
114
|
-
active?: boolean;
|
|
115
99
|
};
|
|
116
100
|
type TierSetGetInput = {
|
|
117
101
|
storeCode?: string;
|
|
@@ -169,7 +153,7 @@ export declare function tiersetGetTiers(input: TierSetGetInput): Promise<{
|
|
|
169
153
|
export declare const tiersetToolDefinitions: readonly [{
|
|
170
154
|
readonly name: "ol_tierset_list";
|
|
171
155
|
readonly title: "List Loyalty Programs";
|
|
172
|
-
readonly description:
|
|
156
|
+
readonly description: string;
|
|
173
157
|
readonly readOnly: true;
|
|
174
158
|
readonly inputSchema: {
|
|
175
159
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
@@ -196,23 +180,12 @@ export declare const tiersetToolDefinitions: readonly [{
|
|
|
196
180
|
attribute: "activeUnits" | "totalEarnedUnits" | "totalSpending" | "monthsSinceJoiningProgram" | "cumulatedEarnedUnits";
|
|
197
181
|
walletType?: string | undefined;
|
|
198
182
|
}>, "many">;
|
|
199
|
-
downgrade: z.ZodOptional<z.ZodObject<{
|
|
200
|
-
mode: z.ZodEnum<["none", "automatic", "x_days"]>;
|
|
201
|
-
days: z.ZodOptional<z.ZodNumber>;
|
|
202
|
-
}, "strip", z.ZodTypeAny, {
|
|
203
|
-
mode: "none" | "automatic" | "x_days";
|
|
204
|
-
days?: number | undefined;
|
|
205
|
-
}, {
|
|
206
|
-
mode: "none" | "automatic" | "x_days";
|
|
207
|
-
days?: number | undefined;
|
|
208
|
-
}>>;
|
|
209
|
-
active: z.ZodOptional<z.ZodBoolean>;
|
|
210
183
|
};
|
|
211
184
|
readonly handler: typeof tiersetCreate;
|
|
212
185
|
}, {
|
|
213
186
|
readonly name: "ol_tierset_get";
|
|
214
187
|
readonly title: "Get Loyalty Program Details";
|
|
215
|
-
readonly description:
|
|
188
|
+
readonly description: string;
|
|
216
189
|
readonly readOnly: true;
|
|
217
190
|
readonly inputSchema: {
|
|
218
191
|
storeCode: z.ZodOptional<z.ZodString>;
|
|
@@ -222,7 +195,7 @@ export declare const tiersetToolDefinitions: readonly [{
|
|
|
222
195
|
}, {
|
|
223
196
|
readonly name: "ol_tierset_update";
|
|
224
197
|
readonly title: "Update Loyalty Program";
|
|
225
|
-
readonly description:
|
|
198
|
+
readonly description: string;
|
|
226
199
|
readonly readOnly: false;
|
|
227
200
|
readonly inputSchema: {
|
|
228
201
|
storeCode: z.ZodOptional<z.ZodString>;
|
package/dist/tools/tierset.js
CHANGED
|
@@ -14,15 +14,13 @@ export const TierSetCreateInputSchema = {
|
|
|
14
14
|
name: z.string().describe("Name of the tier set."),
|
|
15
15
|
description: z.string().optional().describe("Description of the tier set."),
|
|
16
16
|
conditions: z.array(z.object({
|
|
17
|
-
attribute: TierSetAttributeEnum.describe("
|
|
18
|
-
|
|
17
|
+
attribute: TierSetAttributeEnum.describe("VALID VALUES: 'activeUnits' (current balance), 'totalEarnedUnits' (lifetime points - NOT 'earnedUnits'), " +
|
|
18
|
+
"'totalSpending' (lifetime spend), 'monthsSinceJoiningProgram' (tenure), 'cumulatedEarnedUnits'. " +
|
|
19
|
+
"Use 'totalEarnedUnits' for lifetime points earned."),
|
|
20
|
+
walletType: z.string().optional().describe("Wallet type CODE (not UUID). Required for unit-based attributes (activeUnits, totalEarnedUnits, cumulatedEarnedUnits). " +
|
|
19
21
|
"Use wallet_type_list to find walletType.code (e.g., 'default')."),
|
|
20
|
-
})).describe("Array of conditions that define tier progression criteria.
|
|
21
|
-
|
|
22
|
-
mode: DowngradeModeEnum.describe("Downgrade mode."),
|
|
23
|
-
days: z.number().optional().describe("Number of days for x_days mode (required if mode is x_days)."),
|
|
24
|
-
}).optional().describe("Downgrade configuration for the tier set."),
|
|
25
|
-
active: z.boolean().optional().describe("Whether the tier set is active. Defaults to true."),
|
|
22
|
+
})).describe("Array of conditions that define tier progression criteria. IMPORTANT: Use 'totalEarnedUnits' for lifetime points (NOT 'earnedUnits')."),
|
|
23
|
+
// NOTE: downgrade and active are NOT supported at creation time - use tierset_update after creation
|
|
26
24
|
};
|
|
27
25
|
export const TierSetGetInputSchema = {
|
|
28
26
|
storeCode: z.string().optional().describe("Store code for multi-tenant routing. DO NOT pass this parameter - the configured default will be used automatically. Only provide a value if the user explicitly asks to work with a different store."),
|
|
@@ -85,23 +83,34 @@ export async function tiersetList(input) {
|
|
|
85
83
|
}
|
|
86
84
|
export async function tiersetCreate(input) {
|
|
87
85
|
const storeCode = getStoreCode(input.storeCode);
|
|
88
|
-
// API
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
86
|
+
// API QUIRK: Only accepts specific fields at creation time.
|
|
87
|
+
// Fields NOT supported at creation: tiers, active, downgrade
|
|
88
|
+
// These must be set via tierset_update or tierset_update_tiers after creation.
|
|
89
|
+
//
|
|
90
|
+
// REQUIRED fields:
|
|
91
|
+
// - translations.en.name (string)
|
|
92
|
+
// - conditions (array with attribute, optionally walletType)
|
|
93
|
+
const tierSetPayload = {
|
|
94
|
+
translations: {
|
|
95
|
+
en: {
|
|
96
|
+
name: input.name,
|
|
97
|
+
description: input.description || "",
|
|
96
98
|
},
|
|
97
|
-
conditions: input.conditions,
|
|
98
|
-
downgrade: input.downgrade,
|
|
99
|
-
active: input.active ?? true,
|
|
100
99
|
},
|
|
100
|
+
conditions: input.conditions,
|
|
101
101
|
};
|
|
102
|
+
const payload = { tierSet: tierSetPayload };
|
|
102
103
|
try {
|
|
103
104
|
const response = await apiPost(`/${storeCode}/tierSet`, payload);
|
|
104
|
-
|
|
105
|
+
// API QUIRK: Create endpoint only returns { tierSetId: string }
|
|
106
|
+
// We need to fetch the full tier set to get the conditionId values
|
|
107
|
+
const createResponse = response;
|
|
108
|
+
if (!createResponse.tierSetId) {
|
|
109
|
+
throw new Error(`Unexpected response format: ${JSON.stringify(response)}`);
|
|
110
|
+
}
|
|
111
|
+
// Fetch the created tier set to get condition IDs
|
|
112
|
+
const tierSetResponse = await apiGet(`/${storeCode}/tierSet/${createResponse.tierSetId}`);
|
|
113
|
+
const validated = TierSetSchema.parse(tierSetResponse);
|
|
105
114
|
return {
|
|
106
115
|
tierSetId: validated.tierSetId,
|
|
107
116
|
conditions: validated.conditions.map((c) => ({
|
|
@@ -127,21 +136,36 @@ export async function tiersetGet(input) {
|
|
|
127
136
|
}
|
|
128
137
|
export async function tiersetUpdate(input) {
|
|
129
138
|
const storeCode = getStoreCode(input.storeCode);
|
|
130
|
-
// API requires
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
139
|
+
// API requires conditions to be present in PUT requests, even for metadata-only updates.
|
|
140
|
+
// Fetch existing tier set to preserve conditions.
|
|
141
|
+
let existingTierSet;
|
|
142
|
+
try {
|
|
143
|
+
const response = await apiGet(`/${storeCode}/tierSet/${input.tierSetId}`);
|
|
144
|
+
existingTierSet = TierSetSchema.parse(response);
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
throw formatApiError(error, "ol_tierset_update");
|
|
148
|
+
}
|
|
149
|
+
// Build payload using existing values as defaults
|
|
150
|
+
const tierSetPayload = {
|
|
151
|
+
// Always include conditions - API requires this even for metadata updates
|
|
152
|
+
conditions: existingTierSet.conditions.map((c) => ({
|
|
153
|
+
attribute: c.attribute,
|
|
154
|
+
walletType: c.walletType,
|
|
155
|
+
})),
|
|
156
|
+
// Always include translations
|
|
157
|
+
translations: {
|
|
135
158
|
en: {
|
|
136
|
-
name: input.name
|
|
137
|
-
description: input.description
|
|
159
|
+
name: input.name ?? existingTierSet.name,
|
|
160
|
+
description: input.description ?? existingTierSet.description ?? "",
|
|
138
161
|
},
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
if (input.downgrade !== undefined)
|
|
162
|
+
},
|
|
163
|
+
// Preserve active status unless explicitly changed
|
|
164
|
+
active: input.active ?? existingTierSet.active,
|
|
165
|
+
};
|
|
166
|
+
if (input.downgrade !== undefined) {
|
|
144
167
|
tierSetPayload.downgrade = input.downgrade;
|
|
168
|
+
}
|
|
145
169
|
try {
|
|
146
170
|
await apiPut(`/${storeCode}/tierSet/${input.tierSetId}`, { tierSet: tierSetPayload });
|
|
147
171
|
}
|
|
@@ -196,7 +220,9 @@ export const tiersetToolDefinitions = [
|
|
|
196
220
|
{
|
|
197
221
|
name: "ol_tierset_list",
|
|
198
222
|
title: "List Loyalty Programs",
|
|
199
|
-
description: "List all tier sets.
|
|
223
|
+
description: "List all tier sets. RECOMMENDED: Check if tier set already exists before creating a new one. " +
|
|
224
|
+
"If exists, use tierset_get to fetch conditionId needed for defining tiers via tierset_update_tiers. " +
|
|
225
|
+
"Returns tierSetId, name, active status, and tier count for each tier set.",
|
|
200
226
|
readOnly: true,
|
|
201
227
|
inputSchema: TierSetListInputSchema,
|
|
202
228
|
handler: tiersetList,
|
|
@@ -204,9 +230,14 @@ export const tiersetToolDefinitions = [
|
|
|
204
230
|
{
|
|
205
231
|
name: "ol_tierset_create",
|
|
206
232
|
title: "Create Loyalty Program",
|
|
207
|
-
description: "Create a new tier set (loyalty program structure).
|
|
208
|
-
"
|
|
209
|
-
"
|
|
233
|
+
description: "Create a new tier set (loyalty program structure). " +
|
|
234
|
+
"⚠️ LIMIT: Maximum 3 ACTIVE tier sets per store. ALWAYS call tierset_list FIRST to check existing tier sets - if one exists that matches your needs, REUSE IT instead of creating a new one. " +
|
|
235
|
+
"WORKFLOW: 1) tierset_list (check existing) → 2) tierset_create (only if needed) → 3) tierset_get (to get conditionId) → 4) tierset_update_tiers (to define thresholds). " +
|
|
236
|
+
"⚠️ API LIMITATION: Only 'name', 'description', and 'conditions' are accepted at creation time. " +
|
|
237
|
+
"Fields like 'active', 'downgrade', 'tiers' are NOT supported at creation - use tierset_update after creation to set these. " +
|
|
238
|
+
"Valid condition attributes: 'totalEarnedUnits' (lifetime points), 'activeUnits' (current balance), 'totalSpending', 'monthsSinceJoiningProgram'. " +
|
|
239
|
+
"COMMON MISTAKE: Use 'totalEarnedUnits' NOT 'earnedUnits' for lifetime points. " +
|
|
240
|
+
"For unit-based attributes, set walletType to 'default'.",
|
|
210
241
|
readOnly: false,
|
|
211
242
|
inputSchema: TierSetCreateInputSchema,
|
|
212
243
|
handler: tiersetCreate,
|
|
@@ -214,7 +245,10 @@ export const tiersetToolDefinitions = [
|
|
|
214
245
|
{
|
|
215
246
|
name: "ol_tierset_get",
|
|
216
247
|
title: "Get Loyalty Program Details",
|
|
217
|
-
description: "Get tier set details including conditionId values needed for tierset_update_tiers.
|
|
248
|
+
description: "Get tier set details including conditionId values needed for tierset_update_tiers. " +
|
|
249
|
+
"CRITICAL: After tierset_create, you MUST call this to get the conditionId from the conditions array. " +
|
|
250
|
+
"The conditionId is then used in tierset_update_tiers to set tier thresholds. " +
|
|
251
|
+
"Response includes conditions[].id (this is the conditionId) and conditions[].attribute.",
|
|
218
252
|
readOnly: true,
|
|
219
253
|
inputSchema: TierSetGetInputSchema,
|
|
220
254
|
handler: tiersetGet,
|
|
@@ -222,7 +256,9 @@ export const tiersetToolDefinitions = [
|
|
|
222
256
|
{
|
|
223
257
|
name: "ol_tierset_update",
|
|
224
258
|
title: "Update Loyalty Program",
|
|
225
|
-
description: "Update tier set metadata (name, description, active status, downgrade settings).
|
|
259
|
+
description: "Update tier set metadata (name, description, active status, downgrade settings). " +
|
|
260
|
+
"Automatically preserves existing conditions (API requires them in update requests). " +
|
|
261
|
+
"Does not modify tiers - use tierset_update_tiers for that.",
|
|
226
262
|
readOnly: false,
|
|
227
263
|
inputSchema: TierSetUpdateInputSchema,
|
|
228
264
|
handler: tiersetUpdate,
|
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare const WalletTypeListInputSchema: {
|
|
4
|
-
storeCode: z.ZodOptional<z.ZodString>;
|
|
5
|
-
};
|
|
6
|
-
export declare const WalletTypeGetInputSchema: {
|
|
7
|
-
storeCode: z.ZodOptional<z.ZodString>;
|
|
8
|
-
walletTypeId: z.ZodString;
|
|
9
|
-
};
|
|
1
|
+
import { WalletType, WalletTypeListInputSchema, WalletTypeGetInputSchema, WalletTypeCreateInputSchema, WalletTypeUpdateInputSchema } from "../types/schemas/wallet-type.js";
|
|
2
|
+
export { WalletTypeListInputSchema, WalletTypeGetInputSchema, WalletTypeCreateInputSchema, WalletTypeUpdateInputSchema, };
|
|
10
3
|
export declare function walletTypeList(input: {
|
|
11
4
|
storeCode?: string;
|
|
12
5
|
}): Promise<WalletType[]>;
|
|
@@ -14,23 +7,235 @@ export declare function walletTypeGet(input: {
|
|
|
14
7
|
storeCode?: string;
|
|
15
8
|
walletTypeId: string;
|
|
16
9
|
}): Promise<WalletType>;
|
|
10
|
+
export declare function walletTypeCreate(input: {
|
|
11
|
+
storeCode?: string;
|
|
12
|
+
translations: {
|
|
13
|
+
en: {
|
|
14
|
+
name: string;
|
|
15
|
+
description?: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
unitSingularName: string;
|
|
19
|
+
unitPluralName: string;
|
|
20
|
+
unitDaysExpiryAfter: string;
|
|
21
|
+
code?: string;
|
|
22
|
+
allowNegativeBalance?: boolean;
|
|
23
|
+
unitExpiryDate?: string;
|
|
24
|
+
unitDaysActiveCount?: number;
|
|
25
|
+
unitYearsActiveCount?: number;
|
|
26
|
+
unitDaysLocked?: number;
|
|
27
|
+
allTimeNotLocked?: boolean;
|
|
28
|
+
}): Promise<{
|
|
29
|
+
walletTypeId: string;
|
|
30
|
+
name: string;
|
|
31
|
+
code?: string;
|
|
32
|
+
}>;
|
|
33
|
+
export declare function walletTypeUpdate(input: {
|
|
34
|
+
storeCode?: string;
|
|
35
|
+
walletTypeId: string;
|
|
36
|
+
name?: string;
|
|
37
|
+
description?: string;
|
|
38
|
+
unitSingularName?: string;
|
|
39
|
+
unitPluralName?: string;
|
|
40
|
+
active?: boolean;
|
|
41
|
+
allowNegativeBalance?: boolean;
|
|
42
|
+
limits?: {
|
|
43
|
+
points?: {
|
|
44
|
+
interval?: {
|
|
45
|
+
type: string;
|
|
46
|
+
value: number;
|
|
47
|
+
};
|
|
48
|
+
value: number;
|
|
49
|
+
};
|
|
50
|
+
pointsPerMember?: {
|
|
51
|
+
interval?: {
|
|
52
|
+
type: string;
|
|
53
|
+
value: number;
|
|
54
|
+
};
|
|
55
|
+
value: number;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
unitExpiryDate?: string;
|
|
59
|
+
unitDaysExpiryAfter?: string;
|
|
60
|
+
unitDaysActiveCount?: number;
|
|
61
|
+
unitYearsActiveCount?: number;
|
|
62
|
+
unitDaysLocked?: number;
|
|
63
|
+
allTimeNotLocked?: boolean;
|
|
64
|
+
}): Promise<void>;
|
|
17
65
|
export declare const walletTypeToolDefinitions: readonly [{
|
|
18
66
|
readonly name: "ol_wallet_type_list";
|
|
19
67
|
readonly title: "List Point Currencies";
|
|
20
|
-
readonly description:
|
|
68
|
+
readonly description: string;
|
|
21
69
|
readonly readOnly: true;
|
|
22
70
|
readonly inputSchema: {
|
|
23
|
-
storeCode:
|
|
71
|
+
storeCode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
24
72
|
};
|
|
25
73
|
readonly handler: typeof walletTypeList;
|
|
26
74
|
}, {
|
|
27
75
|
readonly name: "ol_wallet_type_get";
|
|
28
76
|
readonly title: "Get Point Currency Details";
|
|
29
|
-
readonly description:
|
|
77
|
+
readonly description: string;
|
|
30
78
|
readonly readOnly: true;
|
|
31
79
|
readonly inputSchema: {
|
|
32
|
-
storeCode:
|
|
33
|
-
walletTypeId:
|
|
80
|
+
storeCode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
81
|
+
walletTypeId: import("zod").ZodString;
|
|
34
82
|
};
|
|
35
83
|
readonly handler: typeof walletTypeGet;
|
|
84
|
+
}, {
|
|
85
|
+
readonly name: "ol_wallet_type_create";
|
|
86
|
+
readonly title: "Create Point Currency";
|
|
87
|
+
readonly description: string;
|
|
88
|
+
readonly readOnly: false;
|
|
89
|
+
readonly inputSchema: {
|
|
90
|
+
storeCode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
91
|
+
translations: import("zod").ZodObject<{
|
|
92
|
+
en: import("zod").ZodObject<{
|
|
93
|
+
name: import("zod").ZodString;
|
|
94
|
+
description: import("zod").ZodOptional<import("zod").ZodString>;
|
|
95
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
96
|
+
name: string;
|
|
97
|
+
description?: string | undefined;
|
|
98
|
+
}, {
|
|
99
|
+
name: string;
|
|
100
|
+
description?: string | undefined;
|
|
101
|
+
}>;
|
|
102
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
103
|
+
en: import("zod").ZodObject<{
|
|
104
|
+
name: import("zod").ZodString;
|
|
105
|
+
description: import("zod").ZodOptional<import("zod").ZodString>;
|
|
106
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
107
|
+
name: string;
|
|
108
|
+
description?: string | undefined;
|
|
109
|
+
}, {
|
|
110
|
+
name: string;
|
|
111
|
+
description?: string | undefined;
|
|
112
|
+
}>;
|
|
113
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
114
|
+
en: import("zod").ZodObject<{
|
|
115
|
+
name: import("zod").ZodString;
|
|
116
|
+
description: import("zod").ZodOptional<import("zod").ZodString>;
|
|
117
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
118
|
+
name: string;
|
|
119
|
+
description?: string | undefined;
|
|
120
|
+
}, {
|
|
121
|
+
name: string;
|
|
122
|
+
description?: string | undefined;
|
|
123
|
+
}>;
|
|
124
|
+
}, import("zod").ZodTypeAny, "passthrough">>;
|
|
125
|
+
unitSingularName: import("zod").ZodString;
|
|
126
|
+
unitPluralName: import("zod").ZodString;
|
|
127
|
+
unitDaysExpiryAfter: import("zod").ZodString;
|
|
128
|
+
code: import("zod").ZodOptional<import("zod").ZodString>;
|
|
129
|
+
allowNegativeBalance: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
130
|
+
unitExpiryDate: import("zod").ZodOptional<import("zod").ZodString>;
|
|
131
|
+
unitDaysActiveCount: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
132
|
+
unitYearsActiveCount: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
133
|
+
unitDaysLocked: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
134
|
+
allTimeNotLocked: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
135
|
+
};
|
|
136
|
+
readonly handler: typeof walletTypeCreate;
|
|
137
|
+
}, {
|
|
138
|
+
readonly name: "ol_wallet_type_update";
|
|
139
|
+
readonly title: "Update Point Currency";
|
|
140
|
+
readonly description: string;
|
|
141
|
+
readonly readOnly: false;
|
|
142
|
+
readonly inputSchema: {
|
|
143
|
+
storeCode: import("zod").ZodOptional<import("zod").ZodString>;
|
|
144
|
+
walletTypeId: import("zod").ZodString;
|
|
145
|
+
name: import("zod").ZodOptional<import("zod").ZodString>;
|
|
146
|
+
description: import("zod").ZodOptional<import("zod").ZodString>;
|
|
147
|
+
unitSingularName: import("zod").ZodOptional<import("zod").ZodString>;
|
|
148
|
+
unitPluralName: import("zod").ZodOptional<import("zod").ZodString>;
|
|
149
|
+
active: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
150
|
+
allowNegativeBalance: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
151
|
+
limits: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
152
|
+
points: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
153
|
+
interval: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
154
|
+
type: import("zod").ZodEnum<["calendarHours", "calendarDays", "calendarWeeks", "calendarMonths", "calendarYears"]>;
|
|
155
|
+
value: import("zod").ZodNumber;
|
|
156
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
157
|
+
value: number;
|
|
158
|
+
type: "calendarHours" | "calendarDays" | "calendarWeeks" | "calendarMonths" | "calendarYears";
|
|
159
|
+
}, {
|
|
160
|
+
value: number;
|
|
161
|
+
type: "calendarHours" | "calendarDays" | "calendarWeeks" | "calendarMonths" | "calendarYears";
|
|
162
|
+
}>>;
|
|
163
|
+
value: import("zod").ZodNumber;
|
|
164
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
165
|
+
value: number;
|
|
166
|
+
interval?: {
|
|
167
|
+
value: number;
|
|
168
|
+
type: "calendarHours" | "calendarDays" | "calendarWeeks" | "calendarMonths" | "calendarYears";
|
|
169
|
+
} | undefined;
|
|
170
|
+
}, {
|
|
171
|
+
value: number;
|
|
172
|
+
interval?: {
|
|
173
|
+
value: number;
|
|
174
|
+
type: "calendarHours" | "calendarDays" | "calendarWeeks" | "calendarMonths" | "calendarYears";
|
|
175
|
+
} | undefined;
|
|
176
|
+
}>>;
|
|
177
|
+
pointsPerMember: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
178
|
+
interval: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
179
|
+
type: import("zod").ZodEnum<["calendarHours", "calendarDays", "calendarWeeks", "calendarMonths", "calendarYears"]>;
|
|
180
|
+
value: import("zod").ZodNumber;
|
|
181
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
182
|
+
value: number;
|
|
183
|
+
type: "calendarHours" | "calendarDays" | "calendarWeeks" | "calendarMonths" | "calendarYears";
|
|
184
|
+
}, {
|
|
185
|
+
value: number;
|
|
186
|
+
type: "calendarHours" | "calendarDays" | "calendarWeeks" | "calendarMonths" | "calendarYears";
|
|
187
|
+
}>>;
|
|
188
|
+
value: import("zod").ZodNumber;
|
|
189
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
190
|
+
value: number;
|
|
191
|
+
interval?: {
|
|
192
|
+
value: number;
|
|
193
|
+
type: "calendarHours" | "calendarDays" | "calendarWeeks" | "calendarMonths" | "calendarYears";
|
|
194
|
+
} | undefined;
|
|
195
|
+
}, {
|
|
196
|
+
value: number;
|
|
197
|
+
interval?: {
|
|
198
|
+
value: number;
|
|
199
|
+
type: "calendarHours" | "calendarDays" | "calendarWeeks" | "calendarMonths" | "calendarYears";
|
|
200
|
+
} | undefined;
|
|
201
|
+
}>>;
|
|
202
|
+
}, "strip", import("zod").ZodTypeAny, {
|
|
203
|
+
points?: {
|
|
204
|
+
value: number;
|
|
205
|
+
interval?: {
|
|
206
|
+
value: number;
|
|
207
|
+
type: "calendarHours" | "calendarDays" | "calendarWeeks" | "calendarMonths" | "calendarYears";
|
|
208
|
+
} | undefined;
|
|
209
|
+
} | undefined;
|
|
210
|
+
pointsPerMember?: {
|
|
211
|
+
value: number;
|
|
212
|
+
interval?: {
|
|
213
|
+
value: number;
|
|
214
|
+
type: "calendarHours" | "calendarDays" | "calendarWeeks" | "calendarMonths" | "calendarYears";
|
|
215
|
+
} | undefined;
|
|
216
|
+
} | undefined;
|
|
217
|
+
}, {
|
|
218
|
+
points?: {
|
|
219
|
+
value: number;
|
|
220
|
+
interval?: {
|
|
221
|
+
value: number;
|
|
222
|
+
type: "calendarHours" | "calendarDays" | "calendarWeeks" | "calendarMonths" | "calendarYears";
|
|
223
|
+
} | undefined;
|
|
224
|
+
} | undefined;
|
|
225
|
+
pointsPerMember?: {
|
|
226
|
+
value: number;
|
|
227
|
+
interval?: {
|
|
228
|
+
value: number;
|
|
229
|
+
type: "calendarHours" | "calendarDays" | "calendarWeeks" | "calendarMonths" | "calendarYears";
|
|
230
|
+
} | undefined;
|
|
231
|
+
} | undefined;
|
|
232
|
+
}>>;
|
|
233
|
+
unitExpiryDate: import("zod").ZodOptional<import("zod").ZodString>;
|
|
234
|
+
unitDaysExpiryAfter: import("zod").ZodOptional<import("zod").ZodString>;
|
|
235
|
+
unitDaysActiveCount: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
236
|
+
unitYearsActiveCount: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
237
|
+
unitDaysLocked: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
238
|
+
allTimeNotLocked: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
239
|
+
};
|
|
240
|
+
readonly handler: typeof walletTypeUpdate;
|
|
36
241
|
}];
|