@raytio/mcp-server 10.3.0 → 10.4.0
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/README.md +2 -0
- package/dist/authorization.d.ts.map +1 -1
- package/dist/authorization.js +2 -0
- package/dist/authorization.js.map +1 -1
- package/dist/tools/_shared/date-range.d.ts +16 -0
- package/dist/tools/_shared/date-range.d.ts.map +1 -0
- package/dist/tools/_shared/date-range.js +28 -0
- package/dist/tools/_shared/date-range.js.map +1 -0
- package/dist/tools/_shared/side-effect.d.ts.map +1 -1
- package/dist/tools/_shared/side-effect.js +3 -1
- package/dist/tools/_shared/side-effect.js.map +1 -1
- package/dist/tools/domains.d.ts.map +1 -1
- package/dist/tools/domains.js +21 -1
- package/dist/tools/domains.js.map +1 -1
- package/dist/tools/gpm/generated-reads.d.ts +5 -0
- package/dist/tools/gpm/generated-reads.d.ts.map +1 -0
- package/dist/tools/gpm/generated-reads.js +28 -0
- package/dist/tools/gpm/generated-reads.js.map +1 -0
- package/dist/tools/gpm/gpm-item-deactivate.d.ts +11 -0
- package/dist/tools/gpm/gpm-item-deactivate.d.ts.map +1 -0
- package/dist/tools/gpm/gpm-item-deactivate.js +45 -0
- package/dist/tools/gpm/gpm-item-deactivate.js.map +1 -0
- package/dist/tools/gpm/gpm-item-register.d.ts +21 -0
- package/dist/tools/gpm/gpm-item-register.d.ts.map +1 -0
- package/dist/tools/gpm/gpm-item-register.js +149 -0
- package/dist/tools/gpm/gpm-item-register.js.map +1 -0
- package/dist/tools/gpm/index.d.ts +5 -0
- package/dist/tools/gpm/index.d.ts.map +1 -0
- package/dist/tools/gpm/index.js +10 -0
- package/dist/tools/gpm/index.js.map +1 -0
- package/dist/tools/imports/index.d.ts +10 -87
- package/dist/tools/imports/index.d.ts.map +1 -1
- package/dist/tools/imports/index.js +11 -3
- package/dist/tools/imports/index.js.map +1 -1
- package/dist/tools/pcm/generated-reads.d.ts +5 -0
- package/dist/tools/pcm/generated-reads.d.ts.map +1 -0
- package/dist/tools/pcm/generated-reads.js +26 -0
- package/dist/tools/pcm/generated-reads.js.map +1 -0
- package/dist/tools/pcm/index.d.ts +5 -0
- package/dist/tools/pcm/index.d.ts.map +1 -0
- package/dist/tools/pcm/index.js +16 -0
- package/dist/tools/pcm/index.js.map +1 -0
- package/dist/tools/pcm/pcm-price-list-deactivate.d.ts +11 -0
- package/dist/tools/pcm/pcm-price-list-deactivate.d.ts.map +1 -0
- package/dist/tools/pcm/pcm-price-list-deactivate.js +46 -0
- package/dist/tools/pcm/pcm-price-list-deactivate.js.map +1 -0
- package/dist/tools/pcm/pcm-price-list-register.d.ts +21 -0
- package/dist/tools/pcm/pcm-price-list-register.d.ts.map +1 -0
- package/dist/tools/pcm/pcm-price-list-register.js +96 -0
- package/dist/tools/pcm/pcm-price-list-register.js.map +1 -0
- package/dist/tools/pcm/pcm-price-list-version-create.d.ts +19 -0
- package/dist/tools/pcm/pcm-price-list-version-create.d.ts.map +1 -0
- package/dist/tools/pcm/pcm-price-list-version-create.js +85 -0
- package/dist/tools/pcm/pcm-price-list-version-create.js.map +1 -0
- package/dist/tools/role-mapping.d.ts.map +1 -1
- package/dist/tools/role-mapping.js +7 -1
- package/dist/tools/role-mapping.js.map +1 -1
- package/package.json +1 -1
|
@@ -43,41 +43,8 @@ export declare const leadRunSchema: z.ZodObject<{
|
|
|
43
43
|
definition_version?: number | undefined;
|
|
44
44
|
}>;
|
|
45
45
|
export declare const runCreateSchema: z.ZodEffects<z.ZodObject<{
|
|
46
|
-
definition_code: z.ZodEnum<["FGL_COA_VALUES", "FGL_COA_COMBINATIONS", "SFA_LEADS", "FND_DAILY_RATES"]>;
|
|
47
|
-
context: z.ZodUnion<[z.
|
|
48
|
-
structure_id: z.ZodString;
|
|
49
|
-
upsert_mode: z.ZodEnum<["CREATE_ONLY", "REPLACE"]>;
|
|
50
|
-
}, "strict", z.ZodTypeAny, {
|
|
51
|
-
structure_id: string;
|
|
52
|
-
upsert_mode: "CREATE_ONLY" | "REPLACE";
|
|
53
|
-
}, {
|
|
54
|
-
structure_id: string;
|
|
55
|
-
upsert_mode: "CREATE_ONLY" | "REPLACE";
|
|
56
|
-
}>, z.ZodObject<{
|
|
57
|
-
org_id: z.ZodString;
|
|
58
|
-
}, "strict", z.ZodTypeAny, {
|
|
59
|
-
org_id: string;
|
|
60
|
-
}, {
|
|
61
|
-
org_id: string;
|
|
62
|
-
}>, z.ZodObject<{
|
|
63
|
-
rate_type: z.ZodString;
|
|
64
|
-
date_from: z.ZodString;
|
|
65
|
-
date_to: z.ZodString;
|
|
66
|
-
currencies: z.ZodArray<z.ZodString, "many">;
|
|
67
|
-
upsert_mode: z.ZodEnum<["CREATE_ONLY", "REPLACE"]>;
|
|
68
|
-
}, "strict", z.ZodTypeAny, {
|
|
69
|
-
upsert_mode: "CREATE_ONLY" | "REPLACE";
|
|
70
|
-
rate_type: string;
|
|
71
|
-
date_from: string;
|
|
72
|
-
date_to: string;
|
|
73
|
-
currencies: string[];
|
|
74
|
-
}, {
|
|
75
|
-
upsert_mode: "CREATE_ONLY" | "REPLACE";
|
|
76
|
-
rate_type: string;
|
|
77
|
-
date_from: string;
|
|
78
|
-
date_to: string;
|
|
79
|
-
currencies: string[];
|
|
80
|
-
}>]>;
|
|
46
|
+
definition_code: z.ZodEnum<["FGL_COA_VALUES", "FGL_COA_COMBINATIONS", "SFA_LEADS", "FND_DAILY_RATES", "GPM_ITEMS", "PCM_PRICE_LIST_LINES"]>;
|
|
47
|
+
context: z.ZodUnion<[z.ZodTypeAny, z.ZodTypeAny, ...z.ZodTypeAny[]]>;
|
|
81
48
|
source_id: z.ZodString;
|
|
82
49
|
destination_org_id: z.ZodString;
|
|
83
50
|
definition_version: z.ZodDefault<z.ZodNumber>;
|
|
@@ -91,87 +58,43 @@ export declare const runCreateSchema: z.ZodEffects<z.ZodObject<{
|
|
|
91
58
|
}>;
|
|
92
59
|
}, "strict", z.ZodTypeAny, {
|
|
93
60
|
idempotency_key: string;
|
|
94
|
-
context: {
|
|
95
|
-
structure_id: string;
|
|
96
|
-
upsert_mode: "CREATE_ONLY" | "REPLACE";
|
|
97
|
-
} | {
|
|
98
|
-
org_id: string;
|
|
99
|
-
} | {
|
|
100
|
-
upsert_mode: "CREATE_ONLY" | "REPLACE";
|
|
101
|
-
rate_type: string;
|
|
102
|
-
date_from: string;
|
|
103
|
-
date_to: string;
|
|
104
|
-
currencies: string[];
|
|
105
|
-
};
|
|
106
61
|
source_id: string;
|
|
107
62
|
destination_org_id: string;
|
|
108
63
|
definition_version: number;
|
|
109
64
|
processing_policy: {
|
|
110
65
|
partial_policy: "NONE" | "INDEPENDENT_OBJECTS";
|
|
111
66
|
};
|
|
112
|
-
definition_code: "FGL_COA_VALUES" | "FGL_COA_COMBINATIONS" | "SFA_LEADS" | "FND_DAILY_RATES";
|
|
67
|
+
definition_code: "FGL_COA_VALUES" | "FGL_COA_COMBINATIONS" | "SFA_LEADS" | "FND_DAILY_RATES" | "GPM_ITEMS" | "PCM_PRICE_LIST_LINES";
|
|
68
|
+
context?: any;
|
|
113
69
|
}, {
|
|
114
70
|
idempotency_key: string;
|
|
115
|
-
context: {
|
|
116
|
-
structure_id: string;
|
|
117
|
-
upsert_mode: "CREATE_ONLY" | "REPLACE";
|
|
118
|
-
} | {
|
|
119
|
-
org_id: string;
|
|
120
|
-
} | {
|
|
121
|
-
upsert_mode: "CREATE_ONLY" | "REPLACE";
|
|
122
|
-
rate_type: string;
|
|
123
|
-
date_from: string;
|
|
124
|
-
date_to: string;
|
|
125
|
-
currencies: string[];
|
|
126
|
-
};
|
|
127
71
|
source_id: string;
|
|
128
72
|
destination_org_id: string;
|
|
129
73
|
processing_policy: {
|
|
130
74
|
partial_policy: "NONE" | "INDEPENDENT_OBJECTS";
|
|
131
75
|
};
|
|
132
|
-
definition_code: "FGL_COA_VALUES" | "FGL_COA_COMBINATIONS" | "SFA_LEADS" | "FND_DAILY_RATES";
|
|
76
|
+
definition_code: "FGL_COA_VALUES" | "FGL_COA_COMBINATIONS" | "SFA_LEADS" | "FND_DAILY_RATES" | "GPM_ITEMS" | "PCM_PRICE_LIST_LINES";
|
|
77
|
+
context?: any;
|
|
133
78
|
definition_version?: number | undefined;
|
|
134
79
|
}>, {
|
|
135
80
|
idempotency_key: string;
|
|
136
|
-
context: {
|
|
137
|
-
structure_id: string;
|
|
138
|
-
upsert_mode: "CREATE_ONLY" | "REPLACE";
|
|
139
|
-
} | {
|
|
140
|
-
org_id: string;
|
|
141
|
-
} | {
|
|
142
|
-
upsert_mode: "CREATE_ONLY" | "REPLACE";
|
|
143
|
-
rate_type: string;
|
|
144
|
-
date_from: string;
|
|
145
|
-
date_to: string;
|
|
146
|
-
currencies: string[];
|
|
147
|
-
};
|
|
148
81
|
source_id: string;
|
|
149
82
|
destination_org_id: string;
|
|
150
83
|
definition_version: number;
|
|
151
84
|
processing_policy: {
|
|
152
85
|
partial_policy: "NONE" | "INDEPENDENT_OBJECTS";
|
|
153
86
|
};
|
|
154
|
-
definition_code: "FGL_COA_VALUES" | "FGL_COA_COMBINATIONS" | "SFA_LEADS" | "FND_DAILY_RATES";
|
|
87
|
+
definition_code: "FGL_COA_VALUES" | "FGL_COA_COMBINATIONS" | "SFA_LEADS" | "FND_DAILY_RATES" | "GPM_ITEMS" | "PCM_PRICE_LIST_LINES";
|
|
88
|
+
context?: any;
|
|
155
89
|
}, {
|
|
156
90
|
idempotency_key: string;
|
|
157
|
-
context: {
|
|
158
|
-
structure_id: string;
|
|
159
|
-
upsert_mode: "CREATE_ONLY" | "REPLACE";
|
|
160
|
-
} | {
|
|
161
|
-
org_id: string;
|
|
162
|
-
} | {
|
|
163
|
-
upsert_mode: "CREATE_ONLY" | "REPLACE";
|
|
164
|
-
rate_type: string;
|
|
165
|
-
date_from: string;
|
|
166
|
-
date_to: string;
|
|
167
|
-
currencies: string[];
|
|
168
|
-
};
|
|
169
91
|
source_id: string;
|
|
170
92
|
destination_org_id: string;
|
|
171
93
|
processing_policy: {
|
|
172
94
|
partial_policy: "NONE" | "INDEPENDENT_OBJECTS";
|
|
173
95
|
};
|
|
174
|
-
definition_code: "FGL_COA_VALUES" | "FGL_COA_COMBINATIONS" | "SFA_LEADS" | "FND_DAILY_RATES";
|
|
96
|
+
definition_code: "FGL_COA_VALUES" | "FGL_COA_COMBINATIONS" | "SFA_LEADS" | "FND_DAILY_RATES" | "GPM_ITEMS" | "PCM_PRICE_LIST_LINES";
|
|
97
|
+
context?: any;
|
|
175
98
|
definition_version?: number | undefined;
|
|
176
99
|
}>;
|
|
177
100
|
export declare const importRunCreateTool: Tool;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/imports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAgBtC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA+E,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/imports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAgBtC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA+E,CAAC;AAY1G,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY1B,CAAC;AA0CH,eAAO,MAAM,mBAAmB,MAIS,CAAC;AAE1C,eAAO,MAAM,WAAW,EAAE,IAAI,EAsC7B,CAAC"}
|
|
@@ -18,6 +18,8 @@ const contexts = {
|
|
|
18
18
|
FGL_COA_VALUES: coaContext,
|
|
19
19
|
FGL_COA_COMBINATIONS: coaContext,
|
|
20
20
|
SFA_LEADS: z.object({ org_id: id }).strict(),
|
|
21
|
+
GPM_ITEMS: z.object({ org_id: id }).strict(),
|
|
22
|
+
PCM_PRICE_LIST_LINES: z.object({ org_id: id, price_list_version_id: id }).strict(),
|
|
21
23
|
FND_DAILY_RATES: z.object({
|
|
22
24
|
rate_type: z.string().min(1).max(30), date_from: z.string().date(), date_to: z.string().date(),
|
|
23
25
|
currencies: z.array(z.string().regex(/^[A-Z]{3}$/)).min(2).max(200), upsert_mode: upsert,
|
|
@@ -25,8 +27,12 @@ const contexts = {
|
|
|
25
27
|
};
|
|
26
28
|
export const runCreateSchema = z.object({
|
|
27
29
|
...common,
|
|
28
|
-
definition_code: z.enum([
|
|
29
|
-
|
|
30
|
+
definition_code: z.enum([
|
|
31
|
+
'FGL_COA_VALUES', 'FGL_COA_COMBINATIONS', 'SFA_LEADS', 'FND_DAILY_RATES',
|
|
32
|
+
'GPM_ITEMS', 'PCM_PRICE_LIST_LINES',
|
|
33
|
+
]),
|
|
34
|
+
// Any registered context shape; superRefine checks it matches definition_code.
|
|
35
|
+
context: z.union(Object.values(contexts)),
|
|
30
36
|
}).strict().superRefine((input, ctx) => {
|
|
31
37
|
if (!contexts[input.definition_code].safeParse(input.context).success) {
|
|
32
38
|
ctx.addIssue({ code: z.ZodIssueCode.custom, path: ['context'], message: 'Context must match the registered definition' });
|
|
@@ -73,7 +79,9 @@ function endpoint(name, description, schema, route, read = false) {
|
|
|
73
79
|
}
|
|
74
80
|
const runPath = (input) => `/imports/runs/${input.run_id}`;
|
|
75
81
|
const accepted = ' Returns the server receipt and durable identifiers; acceptance is not import completion. Retry identical input with the same idempotency_key; changed input requires a new key.';
|
|
76
|
-
export const importRunCreateTool = endpoint('fnd_import_run_create', 'Create a shared COA (no ledger), lead,
|
|
82
|
+
export const importRunCreateTool = endpoint('fnd_import_run_create', 'Create a shared COA (no ledger), lead, daily-rate, catalogue item (GPM_ITEMS, context {org_id}) or price list line ' +
|
|
83
|
+
'(PCM_PRICE_LIST_LINES, context {org_id, price_list_version_id}) import using an existing authorised source and explicit domain context. ' +
|
|
84
|
+
'Item rows use items_interface_action I (insert), U (update), P (upsert, default) or D (deactivate).' + accepted, runCreateSchema, () => '/imports/runs');
|
|
77
85
|
export const importTools = [
|
|
78
86
|
endpoint('fnd_import_definitions', 'Discover authoritative registered import definitions, fields, context and availability.', z.object({}).strict(), () => '/imports/definitions', true),
|
|
79
87
|
importRunCreateTool,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/imports/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExE,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;AAC7B,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACvC,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxC,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC;AACxD,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;AAClD,MAAM,MAAM,GAAG;IACb,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,gFAAgF,CAAC;IACxG,kBAAkB,EAAE,EAAE;IACtB,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACtC,eAAe,EAAE,GAAG;IACpB,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CAClE,CAAC;AACF,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAChF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAC1G,MAAM,QAAQ,GAAG;IACf,cAAc,EAAE,UAAU;IAC1B,oBAAoB,EAAE,UAAU;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5C,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC;QACxB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;QAC9F,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM;KACzF,CAAC,CAAC,MAAM,EAAE;CACZ,CAAC;AACF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,GAAG,MAAM;IACT,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/imports/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Tool } from '../registry.js';
|
|
2
|
+
import { CatalogueReport } from '../../generated-reads/index.js';
|
|
3
|
+
export declare const pcmGeneratedReadReport: CatalogueReport;
|
|
4
|
+
export declare const pcmGeneratedReadTools: Tool[];
|
|
5
|
+
//# sourceMappingURL=generated-reads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-reads.d.ts","sourceRoot":"","sources":["../../../src/tools/pcm/generated-reads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAGL,eAAe,EAChB,MAAM,gCAAgC,CAAC;AAwBxC,eAAO,MAAM,sBAAsB,EAAE,eAGjC,CAAC;AAEL,eAAO,MAAM,qBAAqB,EAAE,IAAI,EAGvC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { buildGeneratedReadCatalogue, buildGeneratedReadCatalogueReport, } from '../../generated-reads/index.js';
|
|
2
|
+
import { loadPersistResourceContract } from '../../contracts/persist-resource-contract.js';
|
|
3
|
+
/**
|
|
4
|
+
* Bounded read tools for the PCM (Price / Cost Management) module
|
|
5
|
+
* (WI-0003506).
|
|
6
|
+
*
|
|
7
|
+
* Every PCM resource is classified `normal` (no credentials), so no
|
|
8
|
+
* field-level redaction is required — but the framework still refuses
|
|
9
|
+
* to emit generic `create` / `update` / `delete` tools for tables that
|
|
10
|
+
* carry pricing state. Writes (register or deactivate a price list,
|
|
11
|
+
* create a version) are dedicated tools that require confirm=true.
|
|
12
|
+
*
|
|
13
|
+
* Resources surfaced (all `list`+`read`):
|
|
14
|
+
* - pcm_price_lists, pcm_price_list_versions
|
|
15
|
+
* - pcm_price_list_lines, pcm_price_list_lines_interface,
|
|
16
|
+
* pcm_price_list_lines_interface_batch
|
|
17
|
+
* - pcm_price_list_rules, pcm_price_list_rule_lines
|
|
18
|
+
* - pcm_price_list_parties, pcm_price_list_price_list_type_lookup
|
|
19
|
+
* - pcm_prices, pcm_price_tiers
|
|
20
|
+
*/
|
|
21
|
+
const contract = loadPersistResourceContract();
|
|
22
|
+
export const pcmGeneratedReadReport = buildGeneratedReadCatalogueReport(contract, {
|
|
23
|
+
modules: ['pcm'],
|
|
24
|
+
});
|
|
25
|
+
export const pcmGeneratedReadTools = buildGeneratedReadCatalogue(contract, { modules: ['pcm'] });
|
|
26
|
+
//# sourceMappingURL=generated-reads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated-reads.js","sourceRoot":"","sources":["../../../src/tools/pcm/generated-reads.ts"],"names":[],"mappings":"AACA,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,GAElC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAE3F;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,QAAQ,GAAG,2BAA2B,EAAE,CAAC;AAE/C,MAAM,CAAC,MAAM,sBAAsB,GACjC,iCAAiC,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,CAAC,KAAK,CAAC;CACjB,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,qBAAqB,GAAW,2BAA2B,CACtE,QAAQ,EACR,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,CACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/pcm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAetC,eAAO,MAAM,QAAQ,EAAE,IAAI,EAAiD,CAAC;AAE7E,wEAAwE;AACxE,eAAO,MAAM,gBAAgB,EAAE,IAAI,EAA0B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { pcmGeneratedReadTools } from './generated-reads.js';
|
|
2
|
+
import { pcmPriceListRegisterTool } from './pcm-price-list-register.js';
|
|
3
|
+
import { pcmPriceListDeactivateTool } from './pcm-price-list-deactivate.js';
|
|
4
|
+
import { pcmPriceListVersionCreateTool } from './pcm-price-list-version-create.js';
|
|
5
|
+
// Price list lines belong to the shared import tools (definition_code
|
|
6
|
+
// PCM_PRICE_LIST_LINES), which need moving to the PostgREST import API first (WI-0009453).
|
|
7
|
+
// Pricing rules have no write tool: see the 10.4.0 changelog.
|
|
8
|
+
const pcmWriteTools = [
|
|
9
|
+
pcmPriceListRegisterTool,
|
|
10
|
+
pcmPriceListDeactivateTool,
|
|
11
|
+
pcmPriceListVersionCreateTool,
|
|
12
|
+
];
|
|
13
|
+
export const pcmTools = [...pcmGeneratedReadTools, ...pcmWriteTools];
|
|
14
|
+
/** Read-only slice used by the `pcm-readonly` selectable sub-domain. */
|
|
15
|
+
export const pcmReadOnlyTools = pcmGeneratedReadTools;
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/pcm/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAEnF,sEAAsE;AACtE,2FAA2F;AAC3F,8DAA8D;AAC9D,MAAM,aAAa,GAAW;IAC5B,wBAAwB;IACxB,0BAA0B;IAC1B,6BAA6B;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAW,CAAC,GAAG,qBAAqB,EAAE,GAAG,aAAa,CAAC,CAAC;AAE7E,wEAAwE;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAW,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Tool } from '../registry.js';
|
|
2
|
+
/**
|
|
3
|
+
* Deactivate a price list (`pcm_price_lists`) by setting `active=false`.
|
|
4
|
+
* Its versions and lines are kept. The unique key on name and type only
|
|
5
|
+
* covers active lists, so deactivating frees the name for a new list.
|
|
6
|
+
*
|
|
7
|
+
* The tool reads the list first: the reason is merged into `metadata`,
|
|
8
|
+
* and a list already inactive is returned unchanged.
|
|
9
|
+
*/
|
|
10
|
+
export declare const pcmPriceListDeactivateTool: Tool;
|
|
11
|
+
//# sourceMappingURL=pcm-price-list-deactivate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pcm-price-list-deactivate.d.ts","sourceRoot":"","sources":["../../../src/tools/pcm/pcm-price-list-deactivate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAStC;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,EAAE,IAsCxC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { cap } from '../../capabilities/tool-capability.js';
|
|
3
|
+
import { confirmFlagSchema, reasonSchema, unenforcedIdempotencyKeySchema, } from '../_shared/side-effect.js';
|
|
4
|
+
import { softDeactivate, softDeactivateEndDateSchema } from '../_shared/soft-deactivate.js';
|
|
5
|
+
/**
|
|
6
|
+
* Deactivate a price list (`pcm_price_lists`) by setting `active=false`.
|
|
7
|
+
* Its versions and lines are kept. The unique key on name and type only
|
|
8
|
+
* covers active lists, so deactivating frees the name for a new list.
|
|
9
|
+
*
|
|
10
|
+
* The tool reads the list first: the reason is merged into `metadata`,
|
|
11
|
+
* and a list already inactive is returned unchanged.
|
|
12
|
+
*/
|
|
13
|
+
export const pcmPriceListDeactivateTool = {
|
|
14
|
+
name: 'pcm_price_list_deactivate',
|
|
15
|
+
description: 'Deactivate a price list (pcm_price_lists) by setting active=false and merging the reason ' +
|
|
16
|
+
'into metadata. Requires confirm=true and a reason. Versions and lines are kept, and the ' +
|
|
17
|
+
'name and type become free for a new active list. A list already inactive is returned ' +
|
|
18
|
+
'unchanged, so retries are safe. end_date is left alone unless supplied.',
|
|
19
|
+
inputSchema: z.object({
|
|
20
|
+
id: z.string().uuid().describe('UUID of the pcm_price_lists row to deactivate'),
|
|
21
|
+
reason: reasonSchema.describe('Human-readable reason, merged into metadata'),
|
|
22
|
+
end_date: softDeactivateEndDateSchema,
|
|
23
|
+
confirm: confirmFlagSchema,
|
|
24
|
+
idempotency_key: unenforcedIdempotencyKeySchema,
|
|
25
|
+
}),
|
|
26
|
+
capabilities: [cap('pcm_price_lists', 'UPDATE'), cap('pcm_price_lists', 'SELECT')],
|
|
27
|
+
sideEffect: 'state_change',
|
|
28
|
+
confirmation: 'caller_confirms',
|
|
29
|
+
idempotency: 'natural_key',
|
|
30
|
+
handler: async (args, ctx) => {
|
|
31
|
+
const input = args;
|
|
32
|
+
return softDeactivate(ctx, {
|
|
33
|
+
table: 'pcm_price_lists',
|
|
34
|
+
id: input.id,
|
|
35
|
+
label: 'PCM price list',
|
|
36
|
+
verb: 'deactivate',
|
|
37
|
+
isDone: (row) => row.active === false,
|
|
38
|
+
changes: () => ({ active: false }),
|
|
39
|
+
reasonKey: 'deactivation_reason',
|
|
40
|
+
reason: input.reason,
|
|
41
|
+
endDate: input.end_date,
|
|
42
|
+
idempotencyKey: input.idempotency_key,
|
|
43
|
+
});
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=pcm-price-list-deactivate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pcm-price-list-deactivate.js","sourceRoot":"","sources":["../../../src/tools/pcm/pcm-price-list-deactivate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,MAAM,uCAAuC,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5F;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAS;IAC9C,IAAI,EAAE,2BAA2B;IACjC,WAAW,EACT,2FAA2F;QAC3F,0FAA0F;QAC1F,uFAAuF;QACvF,yEAAyE;IAC3E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;QAC/E,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC5E,QAAQ,EAAE,2BAA2B;QACrC,OAAO,EAAE,iBAAiB;QAC1B,eAAe,EAAE,8BAA8B;KAChD,CAAC;IACF,YAAY,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAClF,UAAU,EAAE,cAAc;IAC1B,YAAY,EAAE,iBAAiB;IAC/B,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,IAKb,CAAC;QACF,OAAO,cAAc,CAAC,GAAG,EAAE;YACzB,KAAK,EAAE,iBAAiB;YACxB,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,KAAK;YACrC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YAClC,SAAS,EAAE,qBAAqB;YAChC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,QAAQ;YACvB,cAAc,EAAE,KAAK,CAAC,eAAe;SACtC,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Tool } from '../registry.js';
|
|
2
|
+
/** Values of the Persist PCM_PRICE_LISTS_VISIBILITY lookup. */
|
|
3
|
+
export declare const PCM_PRICE_LIST_VISIBILITIES: readonly ["PARTY", "AUTHENTICATED", "PUBLIC"];
|
|
4
|
+
/**
|
|
5
|
+
* Register a price list (`pcm_price_lists`), the container that price
|
|
6
|
+
* list versions and lines attach to.
|
|
7
|
+
*
|
|
8
|
+
* Unique key: `t_pcm_price_lists_ui` on (price_list_name,
|
|
9
|
+
* price_list_type) among active price lists in the tenant, so a retry
|
|
10
|
+
* fails with a duplicate-key error instead of creating a second list.
|
|
11
|
+
*
|
|
12
|
+
* `pcm_price_lists` is not routed by organisation: Persist fills a
|
|
13
|
+
* missing `org_id` with the tenant's lowest organisation id, so the tool
|
|
14
|
+
* requires it.
|
|
15
|
+
*
|
|
16
|
+
* `visibility=PUBLIC` makes Persist write a wildcard viewer tuple, so
|
|
17
|
+
* anyone, including unauthenticated callers, can read the list. The
|
|
18
|
+
* tool needs `allow_public=true` as well as `confirm=true` for that.
|
|
19
|
+
*/
|
|
20
|
+
export declare const pcmPriceListRegisterTool: Tool;
|
|
21
|
+
//# sourceMappingURL=pcm-price-list-register.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pcm-price-list-register.d.ts","sourceRoot":"","sources":["../../../src/tools/pcm/pcm-price-list-register.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAgBtC,+DAA+D;AAC/D,eAAO,MAAM,2BAA2B,+CAAgD,CAAC;AAEzF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,wBAAwB,EAAE,IAyEtC,CAAC"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { API_ERROR, errorResponse, successResponse } from '../types.js';
|
|
3
|
+
import { cap } from '../../capabilities/tool-capability.js';
|
|
4
|
+
import { confirmFlagSchema, unenforcedIdempotencyKeySchema, writeHeadersWithIdempotency, } from '../_shared/side-effect.js';
|
|
5
|
+
import { END_AFTER_START_MESSAGE, endsAfterStart, isoDateTimeSchema, } from '../_shared/date-range.js';
|
|
6
|
+
const CURRENCY_REGEX = /^[A-Z]{3}$/;
|
|
7
|
+
/** Values of the Persist PCM_PRICE_LISTS_VISIBILITY lookup. */
|
|
8
|
+
export const PCM_PRICE_LIST_VISIBILITIES = ['PARTY', 'AUTHENTICATED', 'PUBLIC'];
|
|
9
|
+
/**
|
|
10
|
+
* Register a price list (`pcm_price_lists`), the container that price
|
|
11
|
+
* list versions and lines attach to.
|
|
12
|
+
*
|
|
13
|
+
* Unique key: `t_pcm_price_lists_ui` on (price_list_name,
|
|
14
|
+
* price_list_type) among active price lists in the tenant, so a retry
|
|
15
|
+
* fails with a duplicate-key error instead of creating a second list.
|
|
16
|
+
*
|
|
17
|
+
* `pcm_price_lists` is not routed by organisation: Persist fills a
|
|
18
|
+
* missing `org_id` with the tenant's lowest organisation id, so the tool
|
|
19
|
+
* requires it.
|
|
20
|
+
*
|
|
21
|
+
* `visibility=PUBLIC` makes Persist write a wildcard viewer tuple, so
|
|
22
|
+
* anyone, including unauthenticated callers, can read the list. The
|
|
23
|
+
* tool needs `allow_public=true` as well as `confirm=true` for that.
|
|
24
|
+
*/
|
|
25
|
+
export const pcmPriceListRegisterTool = {
|
|
26
|
+
name: 'pcm_price_list_register',
|
|
27
|
+
description: 'Register a price list (pcm_price_lists). Requires confirm=true and org_id. ' +
|
|
28
|
+
'price_list_name + price_list_type must be unique among active price lists in the tenant: ' +
|
|
29
|
+
'a retry fails with a duplicate-key error instead of creating a second list. ' +
|
|
30
|
+
'visibility is PARTY (default), AUTHENTICATED or PUBLIC; PUBLIC makes the list readable by ' +
|
|
31
|
+
'anyone, including unauthenticated callers, and also needs allow_public=true.',
|
|
32
|
+
inputSchema: z
|
|
33
|
+
.object({
|
|
34
|
+
price_list_name: z
|
|
35
|
+
.string()
|
|
36
|
+
.min(1)
|
|
37
|
+
.max(256)
|
|
38
|
+
.describe('Price list name, unique with price_list_type among active lists'),
|
|
39
|
+
price_list_type: z
|
|
40
|
+
.string()
|
|
41
|
+
.min(1)
|
|
42
|
+
.max(32)
|
|
43
|
+
.describe('A pcm_price_list_price_list_type_lookup lookup_value_code'),
|
|
44
|
+
price_list_currency: z
|
|
45
|
+
.string()
|
|
46
|
+
.regex(CURRENCY_REGEX, 'price_list_currency must be a 3-letter uppercase ISO 4217 code')
|
|
47
|
+
.describe('ISO 4217 currency code enabled in fnd_currencies (e.g. NZD, AUD)'),
|
|
48
|
+
price_list_description: z.string().max(2048).optional(),
|
|
49
|
+
visibility: z
|
|
50
|
+
.enum(PCM_PRICE_LIST_VISIBILITIES)
|
|
51
|
+
.optional()
|
|
52
|
+
.describe('Who can read the list: PARTY (default), AUTHENTICATED or PUBLIC'),
|
|
53
|
+
allow_public: z
|
|
54
|
+
.literal(true)
|
|
55
|
+
.optional()
|
|
56
|
+
.describe('Must be true when visibility is PUBLIC'),
|
|
57
|
+
org_id: z
|
|
58
|
+
.string()
|
|
59
|
+
.uuid()
|
|
60
|
+
.describe('UUID of the owning organisation (required: Persist does not route price lists)'),
|
|
61
|
+
start_date: isoDateTimeSchema('ISO 8601 effective start (defaults to now)').optional(),
|
|
62
|
+
end_date: isoDateTimeSchema('ISO 8601 end, after start_date').optional(),
|
|
63
|
+
confirm: confirmFlagSchema,
|
|
64
|
+
idempotency_key: unenforcedIdempotencyKeySchema,
|
|
65
|
+
})
|
|
66
|
+
.refine((v) => endsAfterStart(v.start_date, v.end_date), { message: END_AFTER_START_MESSAGE })
|
|
67
|
+
.refine((v) => v.visibility !== 'PUBLIC' || v.allow_public === true, {
|
|
68
|
+
message: 'visibility PUBLIC makes the price list readable by anyone: set allow_public=true',
|
|
69
|
+
path: ['allow_public'],
|
|
70
|
+
}),
|
|
71
|
+
capabilities: [cap('pcm_price_lists', 'INSERT')],
|
|
72
|
+
sideEffect: 'provisioning',
|
|
73
|
+
confirmation: 'caller_confirms',
|
|
74
|
+
idempotency: 'natural_key',
|
|
75
|
+
handler: async (args, ctx) => {
|
|
76
|
+
const input = args;
|
|
77
|
+
const body = {
|
|
78
|
+
price_list_name: input.price_list_name,
|
|
79
|
+
price_list_type: input.price_list_type,
|
|
80
|
+
price_list_currency: input.price_list_currency,
|
|
81
|
+
org_id: input.org_id,
|
|
82
|
+
};
|
|
83
|
+
for (const field of ['price_list_description', 'visibility', 'start_date', 'end_date']) {
|
|
84
|
+
if (input[field] !== undefined)
|
|
85
|
+
body[field] = input[field];
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
const rows = await ctx.apiClient.post(`${ctx.apiClient.dbBasePath}/pcm_price_lists?select=*`, body, { headers: writeHeadersWithIdempotency(input.idempotency_key) });
|
|
89
|
+
return successResponse(rows[0]);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
return errorResponse(API_ERROR, `Failed to register PCM price list: ${error.message}`);
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=pcm-price-list-register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pcm-price-list-register.js","sourceRoot":"","sources":["../../../src/tools/pcm/pcm-price-list-register.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Tool } from '../registry.js';
|
|
2
|
+
/**
|
|
3
|
+
* Create a price list version (`pcm_price_list_versions`). Persist has
|
|
4
|
+
* no publish step: a version is used once its date range is current.
|
|
5
|
+
* Lines are loaded separately through the shared PCM_PRICE_LIST_LINES
|
|
6
|
+
* import, which MCP cannot drive until WI-0009453.
|
|
7
|
+
*
|
|
8
|
+
* Persist does not route versions to their price list's organisation and
|
|
9
|
+
* fills a missing `org_id` with the tenant's lowest organisation id. The
|
|
10
|
+
* managed price-line import only loads into a version in its destination
|
|
11
|
+
* organisation, so the tool reads the price list and stores the version
|
|
12
|
+
* in the list's organisation, refusing a different `org_id`.
|
|
13
|
+
*
|
|
14
|
+
* Unique key: `t_pcm_price_list_versions_uk2` on (price_list_id,
|
|
15
|
+
* price_list_version_name, org_id), so a retry fails with a duplicate-key
|
|
16
|
+
* error instead of creating a second version.
|
|
17
|
+
*/
|
|
18
|
+
export declare const pcmPriceListVersionCreateTool: Tool;
|
|
19
|
+
//# sourceMappingURL=pcm-price-list-version-create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pcm-price-list-version-create.d.ts","sourceRoot":"","sources":["../../../src/tools/pcm/pcm-price-list-version-create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AActC;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,6BAA6B,EAAE,IA+E3C,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { API_ERROR, errorResponse, successResponse } from '../types.js';
|
|
3
|
+
import { cap } from '../../capabilities/tool-capability.js';
|
|
4
|
+
import { confirmFlagSchema, unenforcedIdempotencyKeySchema, writeHeadersWithIdempotency, } from '../_shared/side-effect.js';
|
|
5
|
+
import { END_AFTER_START_MESSAGE, endsAfterStart, isoDateTimeSchema, } from '../_shared/date-range.js';
|
|
6
|
+
/**
|
|
7
|
+
* Create a price list version (`pcm_price_list_versions`). Persist has
|
|
8
|
+
* no publish step: a version is used once its date range is current.
|
|
9
|
+
* Lines are loaded separately through the shared PCM_PRICE_LIST_LINES
|
|
10
|
+
* import, which MCP cannot drive until WI-0009453.
|
|
11
|
+
*
|
|
12
|
+
* Persist does not route versions to their price list's organisation and
|
|
13
|
+
* fills a missing `org_id` with the tenant's lowest organisation id. The
|
|
14
|
+
* managed price-line import only loads into a version in its destination
|
|
15
|
+
* organisation, so the tool reads the price list and stores the version
|
|
16
|
+
* in the list's organisation, refusing a different `org_id`.
|
|
17
|
+
*
|
|
18
|
+
* Unique key: `t_pcm_price_list_versions_uk2` on (price_list_id,
|
|
19
|
+
* price_list_version_name, org_id), so a retry fails with a duplicate-key
|
|
20
|
+
* error instead of creating a second version.
|
|
21
|
+
*/
|
|
22
|
+
export const pcmPriceListVersionCreateTool = {
|
|
23
|
+
name: 'pcm_price_list_version_create',
|
|
24
|
+
description: 'Create a version of an active price list (pcm_price_list_versions). Requires confirm=true. ' +
|
|
25
|
+
'The version is stored in the price list\'s organisation; a different org_id is refused. ' +
|
|
26
|
+
'There is no separate publish step: the version applies while its date range is current. ' +
|
|
27
|
+
'MCP cannot load its lines yet. ' +
|
|
28
|
+
'price_list_version_name is unique within the price list: a retry fails with a duplicate-key ' +
|
|
29
|
+
'error instead of creating a second version.',
|
|
30
|
+
inputSchema: z
|
|
31
|
+
.object({
|
|
32
|
+
price_list_id: z.string().uuid().describe('UUID of the parent pcm_price_lists row'),
|
|
33
|
+
price_list_version_name: z
|
|
34
|
+
.string()
|
|
35
|
+
.min(1)
|
|
36
|
+
.max(256)
|
|
37
|
+
.describe('Version label, unique within the price list'),
|
|
38
|
+
price_list_version_description: z.string().max(2048).optional(),
|
|
39
|
+
start_date: isoDateTimeSchema('ISO 8601 effective start (defaults to now)').optional(),
|
|
40
|
+
end_date: isoDateTimeSchema('ISO 8601 end, after start_date').optional(),
|
|
41
|
+
org_id: z
|
|
42
|
+
.string()
|
|
43
|
+
.uuid()
|
|
44
|
+
.optional()
|
|
45
|
+
.describe('Optional. Must equal the price list\'s org_id, which is used when omitted.'),
|
|
46
|
+
confirm: confirmFlagSchema,
|
|
47
|
+
idempotency_key: unenforcedIdempotencyKeySchema,
|
|
48
|
+
})
|
|
49
|
+
.refine((v) => endsAfterStart(v.start_date, v.end_date), { message: END_AFTER_START_MESSAGE }),
|
|
50
|
+
capabilities: [cap('pcm_price_list_versions', 'INSERT'), cap('pcm_price_lists', 'SELECT')],
|
|
51
|
+
sideEffect: 'provisioning',
|
|
52
|
+
confirmation: 'caller_confirms',
|
|
53
|
+
idempotency: 'natural_key',
|
|
54
|
+
handler: async (args, ctx) => {
|
|
55
|
+
const input = args;
|
|
56
|
+
try {
|
|
57
|
+
const lists = await ctx.apiClient.get(`${ctx.apiClient.dbBasePath}/pcm_price_lists?id=eq.${input.price_list_id}&select=id,org_id,active`);
|
|
58
|
+
const list = lists?.[0];
|
|
59
|
+
if (!list) {
|
|
60
|
+
return errorResponse(API_ERROR, `PCM price list ${input.price_list_id} not found or not accessible`);
|
|
61
|
+
}
|
|
62
|
+
if (list.active === false) {
|
|
63
|
+
return errorResponse(API_ERROR, `PCM price list ${input.price_list_id} is inactive: versions can only be added to an active list`);
|
|
64
|
+
}
|
|
65
|
+
if (input.org_id !== undefined && input.org_id !== list.org_id) {
|
|
66
|
+
return errorResponse(API_ERROR, `org_id ${input.org_id} differs from the price list's organisation ${list.org_id}`);
|
|
67
|
+
}
|
|
68
|
+
const body = {
|
|
69
|
+
price_list_id: input.price_list_id,
|
|
70
|
+
price_list_version_name: input.price_list_version_name,
|
|
71
|
+
org_id: list.org_id,
|
|
72
|
+
};
|
|
73
|
+
for (const field of ['price_list_version_description', 'start_date', 'end_date']) {
|
|
74
|
+
if (input[field] !== undefined)
|
|
75
|
+
body[field] = input[field];
|
|
76
|
+
}
|
|
77
|
+
const rows = await ctx.apiClient.post(`${ctx.apiClient.dbBasePath}/pcm_price_list_versions?select=*`, body, { headers: writeHeadersWithIdempotency(input.idempotency_key) });
|
|
78
|
+
return successResponse(rows[0]);
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
return errorResponse(API_ERROR, `Failed to create PCM price list version: ${error.message}`);
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=pcm-price-list-version-create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pcm-price-list-version-create.js","sourceRoot":"","sources":["../../../src/tools/pcm/pcm-price-list-version-create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role-mapping.d.ts","sourceRoot":"","sources":["../../src/tools/role-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"role-mapping.d.ts","sourceRoot":"","sources":["../../src/tools/role-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AA+DD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAuChE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,SAAS,EAAE,CAAC,CAEtB;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAO7B"}
|