@voyantjs/legal 0.45.0 → 0.46.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 +20 -1
- package/dist/contracts/index.d.ts +1 -1
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +1 -1
- package/dist/contracts/routes.d.ts +54 -30
- package/dist/contracts/routes.d.ts.map +1 -1
- package/dist/contracts/schema.d.ts +34 -0
- package/dist/contracts/schema.d.ts.map +1 -1
- package/dist/contracts/schema.js +10 -0
- package/dist/contracts/service-contracts.d.ts +1 -1
- package/dist/contracts/service-shared.d.ts +2 -1
- package/dist/contracts/service-shared.d.ts.map +1 -1
- package/dist/contracts/service-templates.d.ts +21 -13
- package/dist/contracts/service-templates.d.ts.map +1 -1
- package/dist/contracts/service-templates.js +56 -10
- package/dist/contracts/service.d.ts +21 -13
- package/dist/contracts/service.d.ts.map +1 -1
- package/dist/contracts/validation.d.ts +6 -0
- package/dist/contracts/validation.d.ts.map +1 -1
- package/dist/contracts/validation.js +4 -0
- package/dist/policies/routes.d.ts +1 -1
- package/dist/policies/service-core.d.ts +1 -1
- package/dist/policies/service.d.ts +1 -1
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -25,12 +25,31 @@ const app = createApp({
|
|
|
25
25
|
### Contracts
|
|
26
26
|
|
|
27
27
|
- **Contracts** (`cont`) — legal document instances with status lifecycle
|
|
28
|
-
- **Contract templates** (`ctpl`) — reusable templates with variable schemas
|
|
28
|
+
- **Contract templates** (`ctpl`) — reusable templates with variable schemas,
|
|
29
|
+
optional channel scope, and explicit storefront defaults
|
|
29
30
|
- **Contract template versions** (`ctpv`) — immutable version snapshots
|
|
30
31
|
- **Contract signatures** (`ctsi`) — signing records (who/when/method/ip)
|
|
31
32
|
- **Contract number series** (`ctns`) — series definitions with auto-increment
|
|
32
33
|
- **Contract attachments** (`ctat`) — rendered PDFs and appendices
|
|
33
34
|
|
|
35
|
+
## Default Storefront Contract Templates
|
|
36
|
+
|
|
37
|
+
Contract templates can be marked with `isDefault: true`. At most one default
|
|
38
|
+
template can exist for a given `(scope, channelId, language)` selector. A
|
|
39
|
+
default with `channelId: null` is the global fallback for that scope/language;
|
|
40
|
+
a channel-specific default wins when callers pass `channelId`.
|
|
41
|
+
|
|
42
|
+
Storefronts can resolve the active customer-safe template through:
|
|
43
|
+
|
|
44
|
+
- `GET /v1/public/legal/contracts/templates/default`
|
|
45
|
+
- `GET /v1/admin/legal/contracts/templates/default`
|
|
46
|
+
|
|
47
|
+
Supported query parameters are `scope` (defaults to `customer`), `channelId`,
|
|
48
|
+
`language`, and comma-separated `fallbackLanguages`. Selection checks requested
|
|
49
|
+
and fallback languages in order, prefers channel-specific defaults over global
|
|
50
|
+
defaults, ignores inactive templates, and falls back to the newest active
|
|
51
|
+
matching template only when no explicit default exists for that selector.
|
|
52
|
+
|
|
34
53
|
### Policies
|
|
35
54
|
|
|
36
55
|
- **Policies** (`pol`) — policy definitions by kind (cancellation, payment, T&C, etc.)
|
|
@@ -16,5 +16,5 @@ export type { CloudBrowserGoToOptions, CloudBrowserPdfInput, CloudBrowserPdfOpti
|
|
|
16
16
|
export { createBrowserRenderedPdfContractDocumentSerializer, defaultContractHtmlWrapper, } from "./service-documents-browser.js";
|
|
17
17
|
export type { ContractTemplateLiquidSnippet, ContractTemplateVariableCategory, ContractTemplateVariableDefinition, ContractTemplateVariableType, } from "./template-authoring.js";
|
|
18
18
|
export { contractTemplateLiquidSnippets, contractTemplateVariableCatalog, } from "./template-authoring.js";
|
|
19
|
-
export { contractBodyFormatSchema, contractListQuerySchema, contractNumberResetStrategySchema, contractScopeSchema, contractSignatureMethodSchema, contractStatusSchema, contractTemplateListQuerySchema, generateContractDocumentInputSchema, generatedContractDocumentAttachmentSchema, generatedContractDocumentResultSchema, insertContractAttachmentSchema, insertContractNumberSeriesSchema, insertContractSchema, insertContractSignatureSchema, insertContractTemplateSchema, insertContractTemplateVersionSchema, renderTemplateInputSchema, updateContractAttachmentSchema, updateContractNumberSeriesSchema, updateContractSchema, updateContractTemplateSchema, } from "./validation.js";
|
|
19
|
+
export { contractBodyFormatSchema, contractListQuerySchema, contractNumberResetStrategySchema, contractScopeSchema, contractSignatureMethodSchema, contractStatusSchema, contractTemplateDefaultQuerySchema, contractTemplateListQuerySchema, generateContractDocumentInputSchema, generatedContractDocumentAttachmentSchema, generatedContractDocumentResultSchema, insertContractAttachmentSchema, insertContractNumberSeriesSchema, insertContractSchema, insertContractSignatureSchema, insertContractTemplateSchema, insertContractTemplateVersionSchema, renderTemplateInputSchema, updateContractAttachmentSchema, updateContractNumberSeriesSchema, updateContractSchema, updateContractTemplateSchema, } from "./validation.js";
|
|
20
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,YAAY,EACV,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAErF,eAAO,MAAM,gBAAgB,EAAE,kBAK9B,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,kBAKtC,CAAA;AAED,eAAO,MAAM,iBAAiB;;;CAG7B,CAAA;AAED,YAAY,EACV,QAAQ,EACR,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EACX,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,gBAAgB,EAChB,6BAA6B,EAC7B,cAAc,EACd,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,8BAA8B,EAC9B,gCAAgC,EAChC,8BAA8B,EAC9B,iCAAiC,EACjC,+BAA+B,EAC/B,6CAA6C,EAC7C,uCAAuC,EACvC,mCAAmC,GACpC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,kCAAkC,EAClC,4CAA4C,EAC5C,oCAAoC,EACpC,8CAA8C,GAC/C,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,yDAAyD,GAC1D,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,kDAAkD,EAClD,0BAA0B,GAC3B,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACV,6BAA6B,EAC7B,gCAAgC,EAChC,kCAAkC,EAClC,4BAA4B,GAC7B,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,iCAAiC,EACjC,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,EACpB,+BAA+B,EAC/B,mCAAmC,EACnC,yCAAyC,EACzC,qCAAqC,EACrC,8BAA8B,EAC9B,gCAAgC,EAChC,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,mCAAmC,EACnC,yBAAyB,EACzB,8BAA8B,EAC9B,gCAAgC,EAChC,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,YAAY,EACV,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAA;AAErF,eAAO,MAAM,gBAAgB,EAAE,kBAK9B,CAAA;AAED,eAAO,MAAM,wBAAwB,EAAE,kBAKtC,CAAA;AAED,eAAO,MAAM,iBAAiB;;;CAG7B,CAAA;AAED,YAAY,EACV,QAAQ,EACR,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,WAAW,EACX,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,GAC3B,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,gBAAgB,EAChB,6BAA6B,EAC7B,cAAc,EACd,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,8BAA8B,EAC9B,gCAAgC,EAChC,8BAA8B,EAC9B,iCAAiC,EACjC,+BAA+B,EAC/B,6CAA6C,EAC7C,uCAAuC,EACvC,mCAAmC,GACpC,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,kCAAkC,EAClC,4CAA4C,EAC5C,oCAAoC,EACpC,8CAA8C,GAC/C,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,yDAAyD,GAC1D,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,kDAAkD,EAClD,0BAA0B,GAC3B,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACV,6BAA6B,EAC7B,gCAAgC,EAChC,kCAAkC,EAClC,4BAA4B,GAC7B,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,iCAAiC,EACjC,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,EACpB,kCAAkC,EAClC,+BAA+B,EAC/B,mCAAmC,EACnC,yCAAyC,EACzC,qCAAqC,EACrC,8BAA8B,EAC9B,gCAAgC,EAChC,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,mCAAmC,EACnC,yBAAyB,EACzB,8BAA8B,EAC9B,gCAAgC,EAChC,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,iBAAiB,CAAA"}
|
package/dist/contracts/index.js
CHANGED
|
@@ -20,4 +20,4 @@ export { allocateContractNumber, ContractTemplateSyntaxError, contractsService,
|
|
|
20
20
|
export { createPdfContractDocumentGenerator, createStorageBackedContractDocumentGenerator, defaultPdfContractDocumentSerializer, defaultStorageBackedContractDocumentSerializer, } from "./service-documents.js";
|
|
21
21
|
export { createBrowserRenderedPdfContractDocumentSerializer, defaultContractHtmlWrapper, } from "./service-documents-browser.js";
|
|
22
22
|
export { contractTemplateLiquidSnippets, contractTemplateVariableCatalog, } from "./template-authoring.js";
|
|
23
|
-
export { contractBodyFormatSchema, contractListQuerySchema, contractNumberResetStrategySchema, contractScopeSchema, contractSignatureMethodSchema, contractStatusSchema, contractTemplateListQuerySchema, generateContractDocumentInputSchema, generatedContractDocumentAttachmentSchema, generatedContractDocumentResultSchema, insertContractAttachmentSchema, insertContractNumberSeriesSchema, insertContractSchema, insertContractSignatureSchema, insertContractTemplateSchema, insertContractTemplateVersionSchema, renderTemplateInputSchema, updateContractAttachmentSchema, updateContractNumberSeriesSchema, updateContractSchema, updateContractTemplateSchema, } from "./validation.js";
|
|
23
|
+
export { contractBodyFormatSchema, contractListQuerySchema, contractNumberResetStrategySchema, contractScopeSchema, contractSignatureMethodSchema, contractStatusSchema, contractTemplateDefaultQuerySchema, contractTemplateListQuerySchema, generateContractDocumentInputSchema, generatedContractDocumentAttachmentSchema, generatedContractDocumentResultSchema, insertContractAttachmentSchema, insertContractNumberSeriesSchema, insertContractSchema, insertContractSignatureSchema, insertContractTemplateSchema, insertContractTemplateVersionSchema, renderTemplateInputSchema, updateContractAttachmentSchema, updateContractNumberSeriesSchema, updateContractSchema, updateContractTemplateSchema, } from "./validation.js";
|
|
@@ -35,6 +35,8 @@ export declare function createContractsAdminRoutes(options?: ContractsRouteOptio
|
|
|
35
35
|
body: string;
|
|
36
36
|
variableSchema: import("hono/utils/types").JSONValue;
|
|
37
37
|
currentVersionId: string | null;
|
|
38
|
+
channelId: string | null;
|
|
39
|
+
isDefault: boolean;
|
|
38
40
|
active: boolean;
|
|
39
41
|
createdAt: string;
|
|
40
42
|
updatedAt: string;
|
|
@@ -60,18 +62,20 @@ export declare function createContractsAdminRoutes(options?: ContractsRouteOptio
|
|
|
60
62
|
input: {};
|
|
61
63
|
output: {
|
|
62
64
|
data: {
|
|
63
|
-
id: string;
|
|
64
65
|
name: string;
|
|
65
|
-
|
|
66
|
-
scope: "customer" | "partner" | "supplier" | "other" | "channel";
|
|
67
|
-
language: string;
|
|
66
|
+
id: string;
|
|
68
67
|
description: string | null;
|
|
68
|
+
createdAt: string;
|
|
69
|
+
updatedAt: string;
|
|
70
|
+
scope: "customer" | "partner" | "supplier" | "other" | "channel";
|
|
71
|
+
slug: string;
|
|
72
|
+
active: boolean;
|
|
69
73
|
body: string;
|
|
74
|
+
language: string;
|
|
75
|
+
channelId: string | null;
|
|
70
76
|
variableSchema: import("hono/utils/types").JSONValue;
|
|
77
|
+
isDefault: boolean;
|
|
71
78
|
currentVersionId: string | null;
|
|
72
|
-
active: boolean;
|
|
73
|
-
createdAt: string;
|
|
74
|
-
updatedAt: string;
|
|
75
79
|
};
|
|
76
80
|
};
|
|
77
81
|
outputFormat: "json";
|
|
@@ -94,7 +98,9 @@ export declare function createContractsAdminRoutes(options?: ContractsRouteOptio
|
|
|
94
98
|
active: boolean;
|
|
95
99
|
body: string;
|
|
96
100
|
language: string;
|
|
101
|
+
channelId: string | null;
|
|
97
102
|
variableSchema: import("hono/utils/types").JSONValue;
|
|
103
|
+
isDefault: boolean;
|
|
98
104
|
currentVersionId: string | null;
|
|
99
105
|
} | null;
|
|
100
106
|
};
|
|
@@ -132,6 +138,8 @@ export declare function createContractsAdminRoutes(options?: ContractsRouteOptio
|
|
|
132
138
|
body: string;
|
|
133
139
|
variableSchema: import("hono/utils/types").JSONValue;
|
|
134
140
|
currentVersionId: string | null;
|
|
141
|
+
channelId: string | null;
|
|
142
|
+
isDefault: boolean;
|
|
135
143
|
active: boolean;
|
|
136
144
|
createdAt: string;
|
|
137
145
|
updatedAt: string;
|
|
@@ -171,6 +179,8 @@ export declare function createContractsAdminRoutes(options?: ContractsRouteOptio
|
|
|
171
179
|
body: string;
|
|
172
180
|
variableSchema: import("hono/utils/types").JSONValue;
|
|
173
181
|
currentVersionId: string | null;
|
|
182
|
+
channelId: string | null;
|
|
183
|
+
isDefault: boolean;
|
|
174
184
|
active: boolean;
|
|
175
185
|
createdAt: string;
|
|
176
186
|
updatedAt: string;
|
|
@@ -554,6 +564,7 @@ export declare function createContractsAdminRoutes(options?: ContractsRouteOptio
|
|
|
554
564
|
status: "executed" | "void" | "draft" | "issued" | "sent" | "signed" | "expired";
|
|
555
565
|
bookingId: string | null;
|
|
556
566
|
language: string;
|
|
567
|
+
channelId: string | null;
|
|
557
568
|
variables: import("hono/utils/types").JSONValue;
|
|
558
569
|
personId: string | null;
|
|
559
570
|
supplierId: string | null;
|
|
@@ -561,7 +572,6 @@ export declare function createContractsAdminRoutes(options?: ContractsRouteOptio
|
|
|
561
572
|
title: string;
|
|
562
573
|
templateVersionId: string | null;
|
|
563
574
|
seriesId: string | null;
|
|
564
|
-
channelId: string | null;
|
|
565
575
|
sentAt: string | null;
|
|
566
576
|
contractNumber: string | null;
|
|
567
577
|
issuedAt: string | null;
|
|
@@ -1520,6 +1530,8 @@ export declare const contractsAdminRoutes: import("hono/hono-base").HonoBase<Env
|
|
|
1520
1530
|
body: string;
|
|
1521
1531
|
variableSchema: import("hono/utils/types").JSONValue;
|
|
1522
1532
|
currentVersionId: string | null;
|
|
1533
|
+
channelId: string | null;
|
|
1534
|
+
isDefault: boolean;
|
|
1523
1535
|
active: boolean;
|
|
1524
1536
|
createdAt: string;
|
|
1525
1537
|
updatedAt: string;
|
|
@@ -1545,18 +1557,20 @@ export declare const contractsAdminRoutes: import("hono/hono-base").HonoBase<Env
|
|
|
1545
1557
|
input: {};
|
|
1546
1558
|
output: {
|
|
1547
1559
|
data: {
|
|
1548
|
-
id: string;
|
|
1549
1560
|
name: string;
|
|
1550
|
-
|
|
1551
|
-
scope: "customer" | "partner" | "supplier" | "other" | "channel";
|
|
1552
|
-
language: string;
|
|
1561
|
+
id: string;
|
|
1553
1562
|
description: string | null;
|
|
1563
|
+
createdAt: string;
|
|
1564
|
+
updatedAt: string;
|
|
1565
|
+
scope: "customer" | "partner" | "supplier" | "other" | "channel";
|
|
1566
|
+
slug: string;
|
|
1567
|
+
active: boolean;
|
|
1554
1568
|
body: string;
|
|
1569
|
+
language: string;
|
|
1570
|
+
channelId: string | null;
|
|
1555
1571
|
variableSchema: import("hono/utils/types").JSONValue;
|
|
1572
|
+
isDefault: boolean;
|
|
1556
1573
|
currentVersionId: string | null;
|
|
1557
|
-
active: boolean;
|
|
1558
|
-
createdAt: string;
|
|
1559
|
-
updatedAt: string;
|
|
1560
1574
|
};
|
|
1561
1575
|
};
|
|
1562
1576
|
outputFormat: "json";
|
|
@@ -1579,7 +1593,9 @@ export declare const contractsAdminRoutes: import("hono/hono-base").HonoBase<Env
|
|
|
1579
1593
|
active: boolean;
|
|
1580
1594
|
body: string;
|
|
1581
1595
|
language: string;
|
|
1596
|
+
channelId: string | null;
|
|
1582
1597
|
variableSchema: import("hono/utils/types").JSONValue;
|
|
1598
|
+
isDefault: boolean;
|
|
1583
1599
|
currentVersionId: string | null;
|
|
1584
1600
|
} | null;
|
|
1585
1601
|
};
|
|
@@ -1617,6 +1633,8 @@ export declare const contractsAdminRoutes: import("hono/hono-base").HonoBase<Env
|
|
|
1617
1633
|
body: string;
|
|
1618
1634
|
variableSchema: import("hono/utils/types").JSONValue;
|
|
1619
1635
|
currentVersionId: string | null;
|
|
1636
|
+
channelId: string | null;
|
|
1637
|
+
isDefault: boolean;
|
|
1620
1638
|
active: boolean;
|
|
1621
1639
|
createdAt: string;
|
|
1622
1640
|
updatedAt: string;
|
|
@@ -1656,6 +1674,8 @@ export declare const contractsAdminRoutes: import("hono/hono-base").HonoBase<Env
|
|
|
1656
1674
|
body: string;
|
|
1657
1675
|
variableSchema: import("hono/utils/types").JSONValue;
|
|
1658
1676
|
currentVersionId: string | null;
|
|
1677
|
+
channelId: string | null;
|
|
1678
|
+
isDefault: boolean;
|
|
1659
1679
|
active: boolean;
|
|
1660
1680
|
createdAt: string;
|
|
1661
1681
|
updatedAt: string;
|
|
@@ -2039,6 +2059,7 @@ export declare const contractsAdminRoutes: import("hono/hono-base").HonoBase<Env
|
|
|
2039
2059
|
status: "executed" | "void" | "draft" | "issued" | "sent" | "signed" | "expired";
|
|
2040
2060
|
bookingId: string | null;
|
|
2041
2061
|
language: string;
|
|
2062
|
+
channelId: string | null;
|
|
2042
2063
|
variables: import("hono/utils/types").JSONValue;
|
|
2043
2064
|
personId: string | null;
|
|
2044
2065
|
supplierId: string | null;
|
|
@@ -2046,7 +2067,6 @@ export declare const contractsAdminRoutes: import("hono/hono-base").HonoBase<Env
|
|
|
2046
2067
|
title: string;
|
|
2047
2068
|
templateVersionId: string | null;
|
|
2048
2069
|
seriesId: string | null;
|
|
2049
|
-
channelId: string | null;
|
|
2050
2070
|
sentAt: string | null;
|
|
2051
2071
|
contractNumber: string | null;
|
|
2052
2072
|
issuedAt: string | null;
|
|
@@ -3003,18 +3023,20 @@ export declare function createContractsPublicRoutes(): import("hono/hono-base").
|
|
|
3003
3023
|
input: {};
|
|
3004
3024
|
output: {
|
|
3005
3025
|
data: {
|
|
3006
|
-
id: string;
|
|
3007
3026
|
name: string;
|
|
3008
|
-
|
|
3009
|
-
scope: "customer" | "partner" | "supplier" | "other" | "channel";
|
|
3010
|
-
language: string;
|
|
3027
|
+
id: string;
|
|
3011
3028
|
description: string | null;
|
|
3029
|
+
createdAt: string;
|
|
3030
|
+
updatedAt: string;
|
|
3031
|
+
scope: "customer" | "partner" | "supplier" | "other" | "channel";
|
|
3032
|
+
slug: string;
|
|
3033
|
+
active: boolean;
|
|
3012
3034
|
body: string;
|
|
3035
|
+
language: string;
|
|
3036
|
+
channelId: string | null;
|
|
3013
3037
|
variableSchema: import("hono/utils/types").JSONValue;
|
|
3038
|
+
isDefault: boolean;
|
|
3014
3039
|
currentVersionId: string | null;
|
|
3015
|
-
active: boolean;
|
|
3016
|
-
createdAt: string;
|
|
3017
|
-
updatedAt: string;
|
|
3018
3040
|
};
|
|
3019
3041
|
};
|
|
3020
3042
|
outputFormat: "json";
|
|
@@ -3225,18 +3247,20 @@ export declare const contractsPublicRoutes: import("hono/hono-base").HonoBase<En
|
|
|
3225
3247
|
input: {};
|
|
3226
3248
|
output: {
|
|
3227
3249
|
data: {
|
|
3228
|
-
id: string;
|
|
3229
3250
|
name: string;
|
|
3230
|
-
|
|
3231
|
-
scope: "customer" | "partner" | "supplier" | "other" | "channel";
|
|
3232
|
-
language: string;
|
|
3251
|
+
id: string;
|
|
3233
3252
|
description: string | null;
|
|
3253
|
+
createdAt: string;
|
|
3254
|
+
updatedAt: string;
|
|
3255
|
+
scope: "customer" | "partner" | "supplier" | "other" | "channel";
|
|
3256
|
+
slug: string;
|
|
3257
|
+
active: boolean;
|
|
3234
3258
|
body: string;
|
|
3259
|
+
language: string;
|
|
3260
|
+
channelId: string | null;
|
|
3235
3261
|
variableSchema: import("hono/utils/types").JSONValue;
|
|
3262
|
+
isDefault: boolean;
|
|
3236
3263
|
currentVersionId: string | null;
|
|
3237
|
-
active: boolean;
|
|
3238
|
-
createdAt: string;
|
|
3239
|
-
updatedAt: string;
|
|
3240
3264
|
};
|
|
3241
3265
|
};
|
|
3242
3266
|
outputFormat: "json";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/contracts/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAUjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAoB/C,KAAK,GAAG,GAAG;IACT,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,SAAS,EAAE;QACT,SAAS,EAAE,eAAe,CAAA;QAC1B,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAChD,OAAO,gBAAgB,CAAC,wBAAwB,CACjD,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;AAEjB,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,CAAC,EAAE,yBAAyB,CAAA;IAC7C,wBAAwB,CAAC,EAAE,CACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,yBAAyB,GAAG,SAAS,CAAA;IAC1C,0BAA0B,CAAC,EAAE,CAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAA;IAC3C,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IACxC,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,eAAe,GAAG,IAAI,GAAG,SAAS,CAAA;IAClG,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,QAAQ,GAAG,SAAS,CAAA;CAC9E;AAkHD,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,qBAA0B
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/contracts/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAE/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAUjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAoB/C,KAAK,GAAG,GAAG;IACT,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,SAAS,EAAE;QACT,SAAS,EAAE,eAAe,CAAA;QAC1B,EAAE,EAAE,kBAAkB,CAAA;QACtB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,UAAU,CAChD,OAAO,gBAAgB,CAAC,wBAAwB,CACjD,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;AAEjB,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,CAAC,EAAE,yBAAyB,CAAA;IAC7C,wBAAwB,CAAC,EAAE,CACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,yBAAyB,GAAG,SAAS,CAAA;IAC1C,0BAA0B,CAAC,EAAE,CAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAA;IAC3C,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IACxC,sBAAsB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,eAAe,GAAG,IAAI,GAAG,SAAS,CAAA;IAClG,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,QAAQ,GAAG,SAAS,CAAA;CAC9E;AAkHD,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,qBAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCA6V7E;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAA+B,CAAA;AAEhE,wBAAgB,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA6D1C;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAAgC,CAAA;AAElE,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAA;AAC9D,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAA"}
|
|
@@ -160,6 +160,40 @@ export declare const contractTemplates: import("drizzle-orm/pg-core").PgTableWit
|
|
|
160
160
|
identity: undefined;
|
|
161
161
|
generated: undefined;
|
|
162
162
|
}, {}, {}>;
|
|
163
|
+
channelId: import("drizzle-orm/pg-core").PgColumn<{
|
|
164
|
+
name: string;
|
|
165
|
+
tableName: "contract_templates";
|
|
166
|
+
dataType: "string";
|
|
167
|
+
columnType: "PgText";
|
|
168
|
+
data: string;
|
|
169
|
+
driverParam: string;
|
|
170
|
+
notNull: false;
|
|
171
|
+
hasDefault: false;
|
|
172
|
+
isPrimaryKey: false;
|
|
173
|
+
isAutoincrement: false;
|
|
174
|
+
hasRuntimeDefault: false;
|
|
175
|
+
enumValues: [string, ...string[]];
|
|
176
|
+
baseColumn: never;
|
|
177
|
+
identity: undefined;
|
|
178
|
+
generated: undefined;
|
|
179
|
+
}, {}, {}>;
|
|
180
|
+
isDefault: import("drizzle-orm/pg-core").PgColumn<{
|
|
181
|
+
name: "is_default";
|
|
182
|
+
tableName: "contract_templates";
|
|
183
|
+
dataType: "boolean";
|
|
184
|
+
columnType: "PgBoolean";
|
|
185
|
+
data: boolean;
|
|
186
|
+
driverParam: boolean;
|
|
187
|
+
notNull: true;
|
|
188
|
+
hasDefault: true;
|
|
189
|
+
isPrimaryKey: false;
|
|
190
|
+
isAutoincrement: false;
|
|
191
|
+
hasRuntimeDefault: false;
|
|
192
|
+
enumValues: undefined;
|
|
193
|
+
baseColumn: never;
|
|
194
|
+
identity: undefined;
|
|
195
|
+
generated: undefined;
|
|
196
|
+
}, {}, {}>;
|
|
163
197
|
active: import("drizzle-orm/pg-core").PgColumn<{
|
|
164
198
|
name: "active";
|
|
165
199
|
tableName: "contract_templates";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/contracts/schema.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,iBAAiB,+FAM5B,CAAA;AAEF,eAAO,MAAM,kBAAkB,4GAQ7B,CAAA;AAEF,eAAO,MAAM,2BAA2B,qFAKtC,CAAA;AAEF,eAAO,MAAM,+BAA+B,sEAI1C,CAAA;AAEF,eAAO,MAAM,sBAAsB,4EAIjC,CAAA;AAIF,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/contracts/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/contracts/schema.js
CHANGED
|
@@ -47,18 +47,28 @@ export const contractTemplates = pgTable("contract_templates", {
|
|
|
47
47
|
body: text("body").notNull(),
|
|
48
48
|
variableSchema: jsonb("variable_schema"),
|
|
49
49
|
currentVersionId: typeIdRef("current_version_id"),
|
|
50
|
+
channelId: typeIdRef("channel_id"),
|
|
51
|
+
isDefault: boolean("is_default").notNull().default(false),
|
|
50
52
|
active: boolean("active").notNull().default(true),
|
|
51
53
|
createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
|
|
52
54
|
updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
|
|
53
55
|
}, (table) => [
|
|
54
56
|
index("idx_contract_templates_scope").on(table.scope),
|
|
55
57
|
index("idx_contract_templates_language").on(table.language),
|
|
58
|
+
index("idx_contract_templates_channel").on(table.channelId),
|
|
56
59
|
index("idx_contract_templates_active").on(table.active),
|
|
60
|
+
index("idx_contract_templates_default_selector").on(table.scope, table.channelId, table.language, table.isDefault, table.active),
|
|
57
61
|
index("idx_contract_templates_scope_updated").on(table.scope, table.updatedAt),
|
|
58
62
|
index("idx_contract_templates_language_updated").on(table.language, table.updatedAt),
|
|
59
63
|
index("idx_contract_templates_active_updated").on(table.active, table.updatedAt),
|
|
60
64
|
index("idx_contract_templates_scope_active_updated").on(table.scope, table.active, table.updatedAt),
|
|
61
65
|
uniqueIndex("uq_contract_templates_slug").on(table.slug),
|
|
66
|
+
uniqueIndex("uidx_contract_templates_default_global")
|
|
67
|
+
.on(table.scope, table.language)
|
|
68
|
+
.where(sql `${table.isDefault} = true AND ${table.channelId} IS NULL`),
|
|
69
|
+
uniqueIndex("uidx_contract_templates_default_channel")
|
|
70
|
+
.on(table.scope, table.channelId, table.language)
|
|
71
|
+
.where(sql `${table.isDefault} = true AND ${table.channelId} IS NOT NULL`),
|
|
62
72
|
]);
|
|
63
73
|
// ---------- contract_template_versions ----------
|
|
64
74
|
export const contractTemplateVersions = pgTable("contract_template_versions", {
|
|
@@ -75,6 +75,7 @@ export declare const contractRecordsService: {
|
|
|
75
75
|
status: "executed" | "void" | "draft" | "issued" | "sent" | "signed" | "expired";
|
|
76
76
|
bookingId: string | null;
|
|
77
77
|
language: string;
|
|
78
|
+
channelId: string | null;
|
|
78
79
|
variables: unknown;
|
|
79
80
|
personId: string | null;
|
|
80
81
|
supplierId: string | null;
|
|
@@ -82,7 +83,6 @@ export declare const contractRecordsService: {
|
|
|
82
83
|
title: string;
|
|
83
84
|
templateVersionId: string | null;
|
|
84
85
|
seriesId: string | null;
|
|
85
|
-
channelId: string | null;
|
|
86
86
|
sentAt: Date | null;
|
|
87
87
|
contractNumber: string | null;
|
|
88
88
|
issuedAt: Date | null;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type TemplateSyntaxIssue } from "@voyantjs/utils/template-renderer";
|
|
2
2
|
import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
|
|
3
3
|
import type { z } from "zod";
|
|
4
|
-
import type { contractListQuerySchema, contractTemplateListQuerySchema, insertContractAttachmentSchema, insertContractNumberSeriesSchema, insertContractSchema, insertContractSignatureSchema, insertContractTemplateSchema, insertContractTemplateVersionSchema, renderTemplateInputSchema, updateContractAttachmentSchema, updateContractNumberSeriesSchema, updateContractSchema, updateContractTemplateSchema } from "./validation.js";
|
|
4
|
+
import type { contractListQuerySchema, contractTemplateDefaultQuerySchema, contractTemplateListQuerySchema, insertContractAttachmentSchema, insertContractNumberSeriesSchema, insertContractSchema, insertContractSignatureSchema, insertContractTemplateSchema, insertContractTemplateVersionSchema, renderTemplateInputSchema, updateContractAttachmentSchema, updateContractNumberSeriesSchema, updateContractSchema, updateContractTemplateSchema } from "./validation.js";
|
|
5
5
|
export type ContractListQuery = z.infer<typeof contractListQuerySchema>;
|
|
6
6
|
export type ContractTemplateListQuery = z.infer<typeof contractTemplateListQuerySchema>;
|
|
7
|
+
export type ContractTemplateDefaultQuery = z.infer<typeof contractTemplateDefaultQuerySchema>;
|
|
7
8
|
export type CreateContractTemplateInput = z.infer<typeof insertContractTemplateSchema>;
|
|
8
9
|
export type UpdateContractTemplateInput = z.infer<typeof updateContractTemplateSchema>;
|
|
9
10
|
export type CreateContractTemplateVersionInput = z.infer<typeof insertContractTemplateVersionSchema>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-shared.d.ts","sourceRoot":"","sources":["../../src/contracts/service-shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,mCAAmC,CAAA;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAG5B,OAAO,KAAK,EACV,uBAAuB,EACvB,+BAA+B,EAC/B,8BAA8B,EAC9B,gCAAgC,EAChC,oBAAoB,EACpB,6BAA6B,EAC7B,4BAA4B,EAC5B,mCAAmC,EACnC,yBAAyB,EACzB,8BAA8B,EAC9B,gCAAgC,EAChC,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,iBAAiB,CAAA;AAExB,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACvE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AACvF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AACtF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AACtF,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAA;AACpG,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AAC9F,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA;AAC9F,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACtE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AACtE,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AACxF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAC1F,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAC1F,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE3E,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAE9D;AAyCD,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAA;gBAE1B,MAAM,EAAE,mBAAmB,EAAE;CAK1C;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,2BAA2B,CAEtC;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAK/D;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,UAAU,GAAG,MAAM,GAAG,cAAc,EAChD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,MAAM,CASR;AAED,wBAAgB,yBAAyB,CACvC,cAAc,EAAE,OAAO,EACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,EAAE,CAYV;AAkBD,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,kBAAkB,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAqDtD;AAED,wBAAsB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAC7C,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EACvB,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,EAC7C,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM;;;;;GAIf"}
|
|
1
|
+
{"version":3,"file":"service-shared.d.ts","sourceRoot":"","sources":["../../src/contracts/service-shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
|
|
2
|
-
import { type ContractTemplateListQuery, type CreateContractTemplateInput, type CreateContractTemplateVersionInput, type RenderTemplateInput, type UpdateContractTemplateInput } from "./service-shared.js";
|
|
2
|
+
import { type ContractTemplateDefaultQuery, type ContractTemplateListQuery, type CreateContractTemplateInput, type CreateContractTemplateVersionInput, type RenderTemplateInput, type UpdateContractTemplateInput } from "./service-shared.js";
|
|
3
3
|
export declare const contractTemplatesService: {
|
|
4
4
|
listTemplates(db: PostgresJsDatabase, query: ContractTemplateListQuery): Promise<{
|
|
5
5
|
data: {
|
|
@@ -12,6 +12,8 @@ export declare const contractTemplatesService: {
|
|
|
12
12
|
body: string;
|
|
13
13
|
variableSchema: unknown;
|
|
14
14
|
currentVersionId: string | null;
|
|
15
|
+
channelId: string | null;
|
|
16
|
+
isDefault: boolean;
|
|
15
17
|
active: boolean;
|
|
16
18
|
createdAt: Date;
|
|
17
19
|
updatedAt: Date;
|
|
@@ -30,6 +32,8 @@ export declare const contractTemplatesService: {
|
|
|
30
32
|
body: string;
|
|
31
33
|
variableSchema: unknown;
|
|
32
34
|
currentVersionId: string | null;
|
|
35
|
+
channelId: string | null;
|
|
36
|
+
isDefault: boolean;
|
|
33
37
|
active: boolean;
|
|
34
38
|
createdAt: Date;
|
|
35
39
|
updatedAt: Date;
|
|
@@ -48,27 +52,27 @@ export declare const contractTemplatesService: {
|
|
|
48
52
|
body: string;
|
|
49
53
|
variableSchema: unknown;
|
|
50
54
|
currentVersionId: string | null;
|
|
55
|
+
channelId: string | null;
|
|
56
|
+
isDefault: boolean;
|
|
51
57
|
active: boolean;
|
|
52
58
|
createdAt: Date;
|
|
53
59
|
updatedAt: Date;
|
|
54
60
|
} | null>;
|
|
55
|
-
getDefaultTemplate(db: PostgresJsDatabase, query: {
|
|
56
|
-
scope: "customer" | "supplier" | "partner" | "channel" | "other";
|
|
57
|
-
language?: string;
|
|
58
|
-
fallbackLanguages?: string[];
|
|
59
|
-
}): Promise<{
|
|
60
|
-
id: string;
|
|
61
|
+
getDefaultTemplate(db: PostgresJsDatabase, query: ContractTemplateDefaultQuery): Promise<{
|
|
61
62
|
name: string;
|
|
62
|
-
|
|
63
|
-
scope: "customer" | "partner" | "supplier" | "other" | "channel";
|
|
64
|
-
language: string;
|
|
63
|
+
id: string;
|
|
65
64
|
description: string | null;
|
|
65
|
+
createdAt: Date;
|
|
66
|
+
updatedAt: Date;
|
|
67
|
+
scope: "customer" | "partner" | "supplier" | "other" | "channel";
|
|
68
|
+
slug: string;
|
|
69
|
+
active: boolean;
|
|
66
70
|
body: string;
|
|
71
|
+
language: string;
|
|
72
|
+
channelId: string | null;
|
|
67
73
|
variableSchema: unknown;
|
|
74
|
+
isDefault: boolean;
|
|
68
75
|
currentVersionId: string | null;
|
|
69
|
-
active: boolean;
|
|
70
|
-
createdAt: Date;
|
|
71
|
-
updatedAt: Date;
|
|
72
76
|
} | null>;
|
|
73
77
|
createTemplate(db: PostgresJsDatabase, data: CreateContractTemplateInput): Promise<{
|
|
74
78
|
name: string;
|
|
@@ -81,7 +85,9 @@ export declare const contractTemplatesService: {
|
|
|
81
85
|
active: boolean;
|
|
82
86
|
body: string;
|
|
83
87
|
language: string;
|
|
88
|
+
channelId: string | null;
|
|
84
89
|
variableSchema: unknown;
|
|
90
|
+
isDefault: boolean;
|
|
85
91
|
currentVersionId: string | null;
|
|
86
92
|
} | null>;
|
|
87
93
|
/**
|
|
@@ -109,6 +115,8 @@ export declare const contractTemplatesService: {
|
|
|
109
115
|
body: string;
|
|
110
116
|
variableSchema: unknown;
|
|
111
117
|
currentVersionId: string | null;
|
|
118
|
+
channelId: string | null;
|
|
119
|
+
isDefault: boolean;
|
|
112
120
|
active: boolean;
|
|
113
121
|
createdAt: Date;
|
|
114
122
|
updatedAt: Date;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-templates.d.ts","sourceRoot":"","sources":["../../src/contracts/service-templates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAGjE,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EAEvC,KAAK,mBAAmB,EAExB,KAAK,2BAA2B,EAEjC,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"service-templates.d.ts","sourceRoot":"","sources":["../../src/contracts/service-templates.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAGjE,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,kCAAkC,EAEvC,KAAK,mBAAmB,EAExB,KAAK,2BAA2B,EAEjC,MAAM,qBAAqB,CAAA;AA+B5B,eAAO,MAAM,wBAAwB;sBACX,kBAAkB,SAAS,yBAAyB;;;;;;;;;;;;;;;;;;;;;wBA8BlD,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;;IAQxD;;;OAGG;2BAC0B,kBAAkB,QAAQ,MAAM;;;;;;;;;;;;;;;;2BAQhC,kBAAkB,SAAS,4BAA4B;;;;;;;;;;;;;;;;uBA4C3D,kBAAkB,QAAQ,2BAA2B;;;;;;;;;;;;;;;;IA0B9E;;;;;;;;;;;;;;OAcG;uBACsB,kBAAkB,MAAM,MAAM,QAAQ,2BAA2B;;;;;;;;;;;;;;;;uBAiFjE,kBAAkB,MAAM,MAAM;;;6BAO9B,kBAAkB,cAAc,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAO9B,kBAAkB,MAAM,MAAM;;;;;;;;;;8BASzD,kBAAkB,cACV,MAAM,QACZ,kCAAkC;;;;;;;;;;yBAoCrB,mBAAmB,GAAG,MAAM;CAKlD,CAAA"}
|
|
@@ -1,6 +1,24 @@
|
|
|
1
|
-
import { and, desc, eq, ilike, or, sql } from "drizzle-orm";
|
|
1
|
+
import { and, desc, eq, ilike, isNull, ne, or, sql } from "drizzle-orm";
|
|
2
2
|
import { contractTemplates, contractTemplateVersions } from "./schema.js";
|
|
3
3
|
import { paginate, renderTemplate, validateContractTemplateBody, } from "./service-shared.js";
|
|
4
|
+
function normalizeLanguage(value) {
|
|
5
|
+
const normalized = value?.trim().toLowerCase();
|
|
6
|
+
return normalized || null;
|
|
7
|
+
}
|
|
8
|
+
function buildLanguageFallbackOrder(query) {
|
|
9
|
+
return [query.language, ...(query.fallbackLanguages ?? [])]
|
|
10
|
+
.map(normalizeLanguage)
|
|
11
|
+
.filter((value, index, values) => Boolean(value) && values.indexOf(value) === index);
|
|
12
|
+
}
|
|
13
|
+
function pickBestDefaultTemplate(rows, channelId) {
|
|
14
|
+
const channelDefault = channelId
|
|
15
|
+
? rows.find((row) => row.isDefault && row.channelId === channelId)
|
|
16
|
+
: null;
|
|
17
|
+
const globalDefault = rows.find((row) => row.isDefault && row.channelId === null);
|
|
18
|
+
const channelFallback = channelId ? rows.find((row) => row.channelId === channelId) : null;
|
|
19
|
+
const globalFallback = rows.find((row) => row.channelId === null);
|
|
20
|
+
return channelDefault ?? globalDefault ?? channelFallback ?? globalFallback ?? null;
|
|
21
|
+
}
|
|
4
22
|
export const contractTemplatesService = {
|
|
5
23
|
async listTemplates(db, query) {
|
|
6
24
|
const conditions = [];
|
|
@@ -8,6 +26,8 @@ export const contractTemplatesService = {
|
|
|
8
26
|
conditions.push(eq(contractTemplates.scope, query.scope));
|
|
9
27
|
if (query.language)
|
|
10
28
|
conditions.push(eq(contractTemplates.language, query.language));
|
|
29
|
+
if (query.channelId)
|
|
30
|
+
conditions.push(eq(contractTemplates.channelId, query.channelId));
|
|
11
31
|
if (query.active !== undefined)
|
|
12
32
|
conditions.push(eq(contractTemplates.active, query.active));
|
|
13
33
|
if (query.search) {
|
|
@@ -44,31 +64,44 @@ export const contractTemplatesService = {
|
|
|
44
64
|
return row ?? null;
|
|
45
65
|
},
|
|
46
66
|
async getDefaultTemplate(db, query) {
|
|
67
|
+
const channelId = query.channelId?.trim() || undefined;
|
|
68
|
+
const channelConditions = channelId
|
|
69
|
+
? or(eq(contractTemplates.channelId, channelId), isNull(contractTemplates.channelId))
|
|
70
|
+
: isNull(contractTemplates.channelId);
|
|
47
71
|
const rows = await db
|
|
48
72
|
.select()
|
|
49
73
|
.from(contractTemplates)
|
|
50
|
-
.where(and(eq(contractTemplates.scope, query.scope), eq(contractTemplates.active, true)))
|
|
51
|
-
.orderBy(desc(contractTemplates.updatedAt));
|
|
74
|
+
.where(and(eq(contractTemplates.scope, query.scope), eq(contractTemplates.active, true), channelConditions))
|
|
75
|
+
.orderBy(desc(contractTemplates.updatedAt), desc(contractTemplates.createdAt), desc(contractTemplates.id));
|
|
52
76
|
if (rows.length === 0) {
|
|
53
77
|
return null;
|
|
54
78
|
}
|
|
55
|
-
const preferredLanguages =
|
|
56
|
-
query.language?.trim().toLowerCase(),
|
|
57
|
-
...(query.fallbackLanguages ?? []).map((value) => value.trim().toLowerCase()),
|
|
58
|
-
].filter((value, index, values) => Boolean(value) && values.indexOf(value) === index);
|
|
79
|
+
const preferredLanguages = buildLanguageFallbackOrder(query);
|
|
59
80
|
if (preferredLanguages.length === 0) {
|
|
60
|
-
return rows
|
|
81
|
+
return pickBestDefaultTemplate(rows, channelId);
|
|
61
82
|
}
|
|
62
83
|
for (const language of preferredLanguages) {
|
|
63
|
-
const match = rows.
|
|
84
|
+
const match = pickBestDefaultTemplate(rows.filter((row) => row.language.trim().toLowerCase() === language), channelId);
|
|
64
85
|
if (match) {
|
|
65
86
|
return match;
|
|
66
87
|
}
|
|
67
88
|
}
|
|
68
|
-
return rows
|
|
89
|
+
return pickBestDefaultTemplate(rows, channelId);
|
|
69
90
|
},
|
|
70
91
|
async createTemplate(db, data) {
|
|
71
92
|
validateContractTemplateBody(data.body);
|
|
93
|
+
if (data.isDefault) {
|
|
94
|
+
const [existingDefault] = await db
|
|
95
|
+
.select({ id: contractTemplates.id })
|
|
96
|
+
.from(contractTemplates)
|
|
97
|
+
.where(and(eq(contractTemplates.scope, data.scope), eq(contractTemplates.language, data.language), data.channelId
|
|
98
|
+
? eq(contractTemplates.channelId, data.channelId)
|
|
99
|
+
: isNull(contractTemplates.channelId), eq(contractTemplates.isDefault, true)))
|
|
100
|
+
.limit(1);
|
|
101
|
+
if (existingDefault) {
|
|
102
|
+
throw new Error("A default contract template already exists for this scope/channel/language");
|
|
103
|
+
}
|
|
104
|
+
}
|
|
72
105
|
const [row] = await db.insert(contractTemplates).values(data).returning();
|
|
73
106
|
return row ?? null;
|
|
74
107
|
},
|
|
@@ -103,6 +136,19 @@ export const contractTemplatesService = {
|
|
|
103
136
|
if (!existing)
|
|
104
137
|
return null;
|
|
105
138
|
const changedBody = typeof data.body === "string" && data.body !== existing.body ? data.body : null;
|
|
139
|
+
const nextTemplate = { ...existing, ...data };
|
|
140
|
+
if (nextTemplate.isDefault) {
|
|
141
|
+
const [existingDefault] = await tx
|
|
142
|
+
.select({ id: contractTemplates.id })
|
|
143
|
+
.from(contractTemplates)
|
|
144
|
+
.where(and(eq(contractTemplates.scope, nextTemplate.scope), eq(contractTemplates.language, nextTemplate.language), nextTemplate.channelId
|
|
145
|
+
? eq(contractTemplates.channelId, nextTemplate.channelId)
|
|
146
|
+
: isNull(contractTemplates.channelId), eq(contractTemplates.isDefault, true), ne(contractTemplates.id, id)))
|
|
147
|
+
.limit(1);
|
|
148
|
+
if (existingDefault) {
|
|
149
|
+
throw new Error("A default contract template already exists for this scope/channel/language");
|
|
150
|
+
}
|
|
151
|
+
}
|
|
106
152
|
let nextCurrentVersionId = existing.currentVersionId;
|
|
107
153
|
if (changedBody !== null) {
|
|
108
154
|
const [maxRow] = await tx
|
|
@@ -87,6 +87,7 @@ export declare const contractsService: {
|
|
|
87
87
|
status: "executed" | "void" | "draft" | "issued" | "sent" | "signed" | "expired";
|
|
88
88
|
bookingId: string | null;
|
|
89
89
|
language: string;
|
|
90
|
+
channelId: string | null;
|
|
90
91
|
variables: unknown;
|
|
91
92
|
personId: string | null;
|
|
92
93
|
supplierId: string | null;
|
|
@@ -94,7 +95,6 @@ export declare const contractsService: {
|
|
|
94
95
|
title: string;
|
|
95
96
|
templateVersionId: string | null;
|
|
96
97
|
seriesId: string | null;
|
|
97
|
-
channelId: string | null;
|
|
98
98
|
sentAt: Date | null;
|
|
99
99
|
contractNumber: string | null;
|
|
100
100
|
issuedAt: Date | null;
|
|
@@ -1370,6 +1370,8 @@ export declare const contractsService: {
|
|
|
1370
1370
|
body: string;
|
|
1371
1371
|
variableSchema: unknown;
|
|
1372
1372
|
currentVersionId: string | null;
|
|
1373
|
+
channelId: string | null;
|
|
1374
|
+
isDefault: boolean;
|
|
1373
1375
|
active: boolean;
|
|
1374
1376
|
createdAt: Date;
|
|
1375
1377
|
updatedAt: Date;
|
|
@@ -1388,6 +1390,8 @@ export declare const contractsService: {
|
|
|
1388
1390
|
body: string;
|
|
1389
1391
|
variableSchema: unknown;
|
|
1390
1392
|
currentVersionId: string | null;
|
|
1393
|
+
channelId: string | null;
|
|
1394
|
+
isDefault: boolean;
|
|
1391
1395
|
active: boolean;
|
|
1392
1396
|
createdAt: Date;
|
|
1393
1397
|
updatedAt: Date;
|
|
@@ -1402,27 +1406,27 @@ export declare const contractsService: {
|
|
|
1402
1406
|
body: string;
|
|
1403
1407
|
variableSchema: unknown;
|
|
1404
1408
|
currentVersionId: string | null;
|
|
1409
|
+
channelId: string | null;
|
|
1410
|
+
isDefault: boolean;
|
|
1405
1411
|
active: boolean;
|
|
1406
1412
|
createdAt: Date;
|
|
1407
1413
|
updatedAt: Date;
|
|
1408
1414
|
} | null>;
|
|
1409
|
-
getDefaultTemplate(db: import("drizzle-orm/postgres-js").PostgresJsDatabase, query: {
|
|
1410
|
-
scope: "customer" | "supplier" | "partner" | "channel" | "other";
|
|
1411
|
-
language?: string;
|
|
1412
|
-
fallbackLanguages?: string[];
|
|
1413
|
-
}): Promise<{
|
|
1414
|
-
id: string;
|
|
1415
|
+
getDefaultTemplate(db: import("drizzle-orm/postgres-js").PostgresJsDatabase, query: import("./service-shared.js").ContractTemplateDefaultQuery): Promise<{
|
|
1415
1416
|
name: string;
|
|
1416
|
-
|
|
1417
|
-
scope: "customer" | "partner" | "supplier" | "other" | "channel";
|
|
1418
|
-
language: string;
|
|
1417
|
+
id: string;
|
|
1419
1418
|
description: string | null;
|
|
1419
|
+
createdAt: Date;
|
|
1420
|
+
updatedAt: Date;
|
|
1421
|
+
scope: "customer" | "partner" | "supplier" | "other" | "channel";
|
|
1422
|
+
slug: string;
|
|
1423
|
+
active: boolean;
|
|
1420
1424
|
body: string;
|
|
1425
|
+
language: string;
|
|
1426
|
+
channelId: string | null;
|
|
1421
1427
|
variableSchema: unknown;
|
|
1428
|
+
isDefault: boolean;
|
|
1422
1429
|
currentVersionId: string | null;
|
|
1423
|
-
active: boolean;
|
|
1424
|
-
createdAt: Date;
|
|
1425
|
-
updatedAt: Date;
|
|
1426
1430
|
} | null>;
|
|
1427
1431
|
createTemplate(db: import("drizzle-orm/postgres-js").PostgresJsDatabase, data: import("./service-shared.js").CreateContractTemplateInput): Promise<{
|
|
1428
1432
|
name: string;
|
|
@@ -1435,7 +1439,9 @@ export declare const contractsService: {
|
|
|
1435
1439
|
active: boolean;
|
|
1436
1440
|
body: string;
|
|
1437
1441
|
language: string;
|
|
1442
|
+
channelId: string | null;
|
|
1438
1443
|
variableSchema: unknown;
|
|
1444
|
+
isDefault: boolean;
|
|
1439
1445
|
currentVersionId: string | null;
|
|
1440
1446
|
} | null>;
|
|
1441
1447
|
updateTemplate(db: import("drizzle-orm/postgres-js").PostgresJsDatabase, id: string, data: import("./service-shared.js").UpdateContractTemplateInput): Promise<{
|
|
@@ -1448,6 +1454,8 @@ export declare const contractsService: {
|
|
|
1448
1454
|
body: string;
|
|
1449
1455
|
variableSchema: unknown;
|
|
1450
1456
|
currentVersionId: string | null;
|
|
1457
|
+
channelId: string | null;
|
|
1458
|
+
isDefault: boolean;
|
|
1451
1459
|
active: boolean;
|
|
1452
1460
|
createdAt: Date;
|
|
1453
1461
|
updatedAt: Date;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/contracts/service.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,EAC7B,cAAc,EACd,4BAA4B,EAC5B,yBAAyB,EAC1B,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,EAC7B,cAAc,EACd,4BAA4B,EAC5B,yBAAyB,GAC1B,CAAA;AAED,eAAO,MAAM,gBAAgB;;mBAM2oT,CAAC
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/contracts/service.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,EAC7B,cAAc,EACd,4BAA4B,EAC5B,yBAAyB,EAC1B,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,EAC7B,cAAc,EACd,4BAA4B,EAC5B,yBAAyB,GAC1B,CAAA;AAED,eAAO,MAAM,gBAAgB;;mBAM2oT,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CADxqT,CAAA"}
|
|
@@ -45,6 +45,8 @@ export declare const insertContractTemplateSchema: z.ZodObject<{
|
|
|
45
45
|
description: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
46
46
|
body: z.ZodString;
|
|
47
47
|
variableSchema: z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
48
|
+
channelId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
|
|
49
|
+
isDefault: z.ZodDefault<z.ZodBoolean>;
|
|
48
50
|
active: z.ZodDefault<z.ZodBoolean>;
|
|
49
51
|
}, z.core.$strip>;
|
|
50
52
|
export declare const updateContractTemplateSchema: z.ZodObject<{
|
|
@@ -61,6 +63,8 @@ export declare const updateContractTemplateSchema: z.ZodObject<{
|
|
|
61
63
|
description: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
62
64
|
body: z.ZodOptional<z.ZodString>;
|
|
63
65
|
variableSchema: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
|
|
66
|
+
channelId: z.ZodOptional<z.ZodNullable<z.ZodOptional<z.ZodString>>>;
|
|
67
|
+
isDefault: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
64
68
|
active: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
|
|
65
69
|
}, z.core.$strip>;
|
|
66
70
|
export declare const contractTemplateListQuerySchema: z.ZodObject<{
|
|
@@ -74,6 +78,7 @@ export declare const contractTemplateListQuerySchema: z.ZodObject<{
|
|
|
74
78
|
channel: "channel";
|
|
75
79
|
}>>;
|
|
76
80
|
language: z.ZodOptional<z.ZodString>;
|
|
81
|
+
channelId: z.ZodOptional<z.ZodString>;
|
|
77
82
|
active: z.ZodOptional<z.ZodCoercedBoolean<unknown>>;
|
|
78
83
|
search: z.ZodOptional<z.ZodString>;
|
|
79
84
|
}, z.core.$strip>;
|
|
@@ -85,6 +90,7 @@ export declare const contractTemplateDefaultQuerySchema: z.ZodObject<{
|
|
|
85
90
|
other: "other";
|
|
86
91
|
channel: "channel";
|
|
87
92
|
}>>;
|
|
93
|
+
channelId: z.ZodOptional<z.ZodString>;
|
|
88
94
|
language: z.ZodOptional<z.ZodString>;
|
|
89
95
|
fallbackLanguages: z.ZodPipe<z.ZodOptional<z.ZodString>, z.ZodTransform<string[], string | undefined>>;
|
|
90
96
|
}, z.core.$strip>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/contracts/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,mBAAmB;;;;;;EAAkE,CAAA;AAElG,eAAO,MAAM,oBAAoB;;;;;;;;EAQ/B,CAAA;AAEF,eAAO,MAAM,6BAA6B;;;;;EAAwD,CAAA;AAElG,eAAO,MAAM,iCAAiC;;;;EAAyC,CAAA;AAEvF,eAAO,MAAM,wBAAwB;;;;EAA+C,CAAA;
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/contracts/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,mBAAmB;;;;;;EAAkE,CAAA;AAElG,eAAO,MAAM,oBAAoB;;;;;;;;EAQ/B,CAAA;AAEF,eAAO,MAAM,6BAA6B;;;;;EAAwD,CAAA;AAElG,eAAO,MAAM,iCAAiC;;;;EAAyC,CAAA;AAEvF,eAAO,MAAM,wBAAwB;;;;EAA+C,CAAA;AAsCpF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;iBAA6B,CAAA;AACtE,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;iBAAuC,CAAA;AAEhF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;iBAM1C,CAAA;AAEF,eAAO,MAAM,kCAAkC;;;;;;;;;;;iBAe7C,CAAA;AAIF,eAAO,MAAM,mCAAmC;;;;;iBAK9C,CAAA;AAcF,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;iBAAiC,CAAA;AAC9E,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;iBAA2C,CAAA;AAsBxF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAqB,CAAA;AACtD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAA+B,CAAA;AAEhE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;iBASlC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;iBAGpC,CAAA;AAEF,eAAO,MAAM,sCAAsC;;iBAEjD,CAAA;AAEF,eAAO,MAAM,mCAAmC;;;;iBAI9C,CAAA;AAEF,eAAO,MAAM,yCAAyC;;;;;;;;;;;iBAWpD,CAAA;AAEF,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMhD,CAAA;AAkBF,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;iBAA8B,CAAA;AAcxE,eAAO,MAAM,8BAA8B;;;;;;;;iBAA+B,CAAA;AAC1E,eAAO,MAAM,8BAA8B;;;;;;;;iBAAyC,CAAA;AAEpF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAA"}
|
|
@@ -41,6 +41,8 @@ const contractTemplateCoreSchema = z.object({
|
|
|
41
41
|
description: z.string().max(2000).optional().nullable(),
|
|
42
42
|
body: contractTemplateBodySchema,
|
|
43
43
|
variableSchema: z.record(z.string(), z.unknown()).optional().nullable(),
|
|
44
|
+
channelId: z.string().optional().nullable(),
|
|
45
|
+
isDefault: z.boolean().default(false),
|
|
44
46
|
active: z.boolean().default(true),
|
|
45
47
|
});
|
|
46
48
|
export const insertContractTemplateSchema = contractTemplateCoreSchema;
|
|
@@ -48,11 +50,13 @@ export const updateContractTemplateSchema = contractTemplateCoreSchema.partial()
|
|
|
48
50
|
export const contractTemplateListQuerySchema = paginationSchema.extend({
|
|
49
51
|
scope: contractScopeSchema.optional(),
|
|
50
52
|
language: z.string().optional(),
|
|
53
|
+
channelId: z.string().optional(),
|
|
51
54
|
active: z.coerce.boolean().optional(),
|
|
52
55
|
search: z.string().optional(),
|
|
53
56
|
});
|
|
54
57
|
export const contractTemplateDefaultQuerySchema = z.object({
|
|
55
58
|
scope: contractScopeSchema.default("customer"),
|
|
59
|
+
channelId: z.string().optional(),
|
|
56
60
|
language: z.string().min(2).max(10).optional(),
|
|
57
61
|
fallbackLanguages: z
|
|
58
62
|
.string()
|
|
@@ -546,8 +546,8 @@ export declare const policiesAdminRoutes: import("hono/hono-base").HonoBase<Env,
|
|
|
546
546
|
updatedAt: string;
|
|
547
547
|
scope: "supplier" | "organization" | "channel" | "product" | "market" | "global";
|
|
548
548
|
organizationId: string | null;
|
|
549
|
-
supplierId: string | null;
|
|
550
549
|
channelId: string | null;
|
|
550
|
+
supplierId: string | null;
|
|
551
551
|
productId: string | null;
|
|
552
552
|
priority: number;
|
|
553
553
|
validFrom: string | null;
|
|
@@ -1166,8 +1166,8 @@ export declare const policiesCoreService: {
|
|
|
1166
1166
|
updatedAt: Date;
|
|
1167
1167
|
scope: "supplier" | "organization" | "channel" | "product" | "market" | "global";
|
|
1168
1168
|
organizationId: string | null;
|
|
1169
|
-
supplierId: string | null;
|
|
1170
1169
|
channelId: string | null;
|
|
1170
|
+
supplierId: string | null;
|
|
1171
1171
|
productId: string | null;
|
|
1172
1172
|
priority: number;
|
|
1173
1173
|
validFrom: string | null;
|
|
@@ -1166,8 +1166,8 @@ export declare const policiesService: {
|
|
|
1166
1166
|
updatedAt: Date;
|
|
1167
1167
|
scope: "supplier" | "organization" | "channel" | "product" | "market" | "global";
|
|
1168
1168
|
organizationId: string | null;
|
|
1169
|
-
supplierId: string | null;
|
|
1170
1169
|
channelId: string | null;
|
|
1170
|
+
supplierId: string | null;
|
|
1171
1171
|
productId: string | null;
|
|
1172
1172
|
priority: number;
|
|
1173
1173
|
validFrom: string | null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voyantjs/legal",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.46.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -59,14 +59,14 @@
|
|
|
59
59
|
"drizzle-orm": "^0.45.2",
|
|
60
60
|
"hono": "^4.12.10",
|
|
61
61
|
"zod": "^4.3.6",
|
|
62
|
-
"@voyantjs/bookings": "0.
|
|
63
|
-
"@voyantjs/core": "0.
|
|
64
|
-
"@voyantjs/crm": "0.
|
|
65
|
-
"@voyantjs/db": "0.
|
|
66
|
-
"@voyantjs/hono": "0.
|
|
67
|
-
"@voyantjs/suppliers": "0.
|
|
68
|
-
"@voyantjs/utils": "0.
|
|
69
|
-
"@voyantjs/storage": "0.
|
|
62
|
+
"@voyantjs/bookings": "0.46.0",
|
|
63
|
+
"@voyantjs/core": "0.46.0",
|
|
64
|
+
"@voyantjs/crm": "0.46.0",
|
|
65
|
+
"@voyantjs/db": "0.46.0",
|
|
66
|
+
"@voyantjs/hono": "0.46.0",
|
|
67
|
+
"@voyantjs/suppliers": "0.46.0",
|
|
68
|
+
"@voyantjs/utils": "0.46.0",
|
|
69
|
+
"@voyantjs/storage": "0.46.0"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"typescript": "^6.0.2",
|