@d19n/youfibre-odin-sdk 2.0.342 → 2.0.344
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 +26 -2
- package/dist/EntityRegistry.d.ts +4 -0
- package/dist/EntityRegistry.js +4 -0
- package/dist/OdinApiClient.d.ts +8 -0
- package/dist/OdinApiClient.js +16 -0
- package/dist/OdinDbClient.d.ts +8 -0
- package/dist/OdinDbClient.js +16 -0
- package/dist/accessors-v2/DocumentAccessor.d.ts +112 -0
- package/dist/accessors-v2/DocumentAccessor.js +191 -0
- package/dist/accessors-v2/DocumentProcessingAccessor.d.ts +112 -0
- package/dist/accessors-v2/DocumentProcessingAccessor.js +191 -0
- package/dist/accessors-v2/index.d.ts +2 -0
- package/dist/accessors-v2/index.js +7 -3
- package/dist/actions-v2/CreateAiRouteRequestDto.d.ts +1 -1
- package/dist/actions-v2/CreateChurnRequestDto.d.ts +2 -0
- package/dist/actions-v2/CreateChurnRequestDto.js +2 -0
- package/dist/actions-v2/CreateDocumentDto.d.ts +235 -0
- package/dist/actions-v2/CreateDocumentDto.js +57 -0
- package/dist/actions-v2/CreateDocumentProcessingDto.d.ts +192 -0
- package/dist/actions-v2/CreateDocumentProcessingDto.js +57 -0
- package/dist/actions-v2/CreateLeadSalesAppDto.d.ts +9 -17
- package/dist/actions-v2/UpdateDocumentDto.d.ts +236 -0
- package/dist/actions-v2/UpdateDocumentDto.js +59 -0
- package/dist/actions-v2/UpdateMessageReadByCustomerDto.d.ts +72 -0
- package/dist/actions-v2/UpdateMessageReadByCustomerDto.js +56 -0
- package/dist/api-sdk-v2/CommitmentApi.d.ts +48 -0
- package/dist/api-sdk-v2/CommitmentApi.js +155 -0
- package/dist/api-sdk-v2/ContractBuyOutApi.d.ts +2 -0
- package/dist/api-sdk-v2/ContractBuyOutApi.js +6 -0
- package/dist/api-sdk-v2/DocumentApi.d.ts +52 -0
- package/dist/api-sdk-v2/DocumentApi.js +167 -0
- package/dist/api-sdk-v2/DocumentProcessingApi.d.ts +50 -0
- package/dist/api-sdk-v2/DocumentProcessingApi.js +161 -0
- package/dist/api-sdk-v2/EquipmentReturnApi.d.ts +45 -0
- package/dist/api-sdk-v2/EquipmentReturnApi.js +151 -0
- package/dist/api-sdk-v2/EquipmentReturnItemApi.d.ts +45 -0
- package/dist/api-sdk-v2/EquipmentReturnItemApi.js +151 -0
- package/dist/api-sdk-v2/FileApi.d.ts +4 -0
- package/dist/api-sdk-v2/FileApi.js +12 -0
- package/dist/api-sdk-v2/OrderApi.d.ts +2 -0
- package/dist/api-sdk-v2/OrderApi.js +6 -0
- package/dist/db-accessors-v2/DocumentDbAccessor.d.ts +180 -0
- package/dist/db-accessors-v2/DocumentDbAccessor.js +265 -0
- package/dist/db-accessors-v2/DocumentProcessingDbAccessor.d.ts +180 -0
- package/dist/db-accessors-v2/DocumentProcessingDbAccessor.js +265 -0
- package/dist/db-accessors-v2/index.d.ts +2 -0
- package/dist/db-accessors-v2/index.js +7 -3
- package/dist/db-sdk-v2/CommitmentDb.d.ts +120 -0
- package/dist/db-sdk-v2/CommitmentDb.js +204 -0
- package/dist/db-sdk-v2/ContractBuyOutDb.d.ts +2 -0
- package/dist/db-sdk-v2/ContractBuyOutDb.js +6 -0
- package/dist/db-sdk-v2/DocumentDb.d.ts +124 -0
- package/dist/db-sdk-v2/DocumentDb.js +216 -0
- package/dist/db-sdk-v2/DocumentProcessingDb.d.ts +122 -0
- package/dist/db-sdk-v2/DocumentProcessingDb.js +210 -0
- package/dist/db-sdk-v2/EquipmentReturnDb.d.ts +117 -0
- package/dist/db-sdk-v2/EquipmentReturnDb.js +200 -0
- package/dist/db-sdk-v2/EquipmentReturnItemDb.d.ts +117 -0
- package/dist/db-sdk-v2/EquipmentReturnItemDb.js +200 -0
- package/dist/db-sdk-v2/FileDb.d.ts +4 -0
- package/dist/db-sdk-v2/FileDb.js +12 -0
- package/dist/db-sdk-v2/OrderDb.d.ts +2 -0
- package/dist/db-sdk-v2/OrderDb.js +6 -0
- package/dist/entities-v2/AiRouteRequest.d.ts +23 -11
- package/dist/entities-v2/AiRouteRequest.js +15 -3
- package/dist/entities-v2/Commitment.d.ts +154 -0
- package/dist/entities-v2/Commitment.js +115 -0
- package/dist/entities-v2/ContractBuyOut.d.ts +7 -0
- package/dist/entities-v2/ContractBuyOut.js +5 -1
- package/dist/entities-v2/Document.d.ts +1145 -0
- package/dist/entities-v2/Document.js +220 -0
- package/dist/entities-v2/DocumentProcessing.d.ts +272 -0
- package/dist/entities-v2/DocumentProcessing.js +156 -0
- package/dist/entities-v2/EquipmentReturn.d.ts +66 -0
- package/dist/entities-v2/EquipmentReturn.js +64 -0
- package/dist/entities-v2/EquipmentReturnItem.d.ts +66 -0
- package/dist/entities-v2/EquipmentReturnItem.js +64 -0
- package/dist/entities-v2/File.d.ts +81 -1
- package/dist/entities-v2/File.js +9 -1
- package/dist/entities-v2/Message.d.ts +27 -1
- package/dist/entities-v2/Message.js +2 -0
- package/dist/entities-v2/Order.d.ts +49 -8
- package/dist/entities-v2/Order.js +24 -4
- package/dist/entities-v2/YfStockCount.d.ts +197 -1
- package/dist/entities-v2/YfStockCount.js +28 -0
- package/dist/records-v2/ContractBuyOutRecord.d.ts +20 -0
- package/dist/records-v2/ContractBuyOutRecord.js +33 -0
- package/dist/records-v2/DocumentProcessingRecord.d.ts +227 -0
- package/dist/records-v2/DocumentProcessingRecord.js +315 -0
- package/dist/records-v2/DocumentRecord.d.ts +355 -0
- package/dist/records-v2/DocumentRecord.js +468 -0
- package/dist/records-v2/FileRecord.d.ts +59 -3
- package/dist/records-v2/FileRecord.js +83 -1
- package/dist/records-v2/MessageRecord.d.ts +28 -0
- package/dist/records-v2/MessageRecord.js +37 -0
- package/dist/records-v2/index.d.ts +2 -0
- package/dist/records-v2/index.js +10 -4
- package/package.json +1 -1
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Document DB Accessor
|
|
3
|
+
*
|
|
4
|
+
* Provides typed access to Document records via direct database access.
|
|
5
|
+
* For use in backend services with principal + dbService.
|
|
6
|
+
* Returns wrapped records with typed action methods.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // Simple get
|
|
11
|
+
* const record = await accessor.get(id);
|
|
12
|
+
*
|
|
13
|
+
* // With related entities
|
|
14
|
+
* const record = await accessor.get(id, { entities: ["Contact", "Address"] });
|
|
15
|
+
*
|
|
16
|
+
* // With permissions bypass (separate options)
|
|
17
|
+
* const record = await accessor.get(id, {}, { omitPermissionsCheck: true });
|
|
18
|
+
*
|
|
19
|
+
* // Silent write (no RabbitMQ events)
|
|
20
|
+
* const result = await accessor.upsert([dto], { omitWriteEvents: true });
|
|
21
|
+
*
|
|
22
|
+
* // Constructor-level default (applies to all calls)
|
|
23
|
+
* const accessor = new DocumentDbAccessor(principal, dbService, { omitPermissionsCheck: true });
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* AUTO-GENERATED - DO NOT EDIT DIRECTLY
|
|
27
|
+
*/
|
|
28
|
+
import { OdinSearchV2 } from '@d19n/odin-types/dist/core';
|
|
29
|
+
import { DbProvider, DbProviderOptions, DbGetQueryOptions, DbExternalIdQueryOptions } from '@d19n/odin-sdk-generator/dist/db.provider';
|
|
30
|
+
import { QueryBuilder } from '@d19n/odin-sdk-generator/dist/query-builder';
|
|
31
|
+
import { DocumentProperties } from '../entities-v2/Document';
|
|
32
|
+
import { DocumentRecord } from '../records-v2/DocumentRecord';
|
|
33
|
+
/** Search response with wrapped records */
|
|
34
|
+
export interface DocumentDbSearchResponse {
|
|
35
|
+
records: DocumentRecord[];
|
|
36
|
+
totalRecords: number;
|
|
37
|
+
hasMore: boolean;
|
|
38
|
+
aggregations?: Record<string, any>;
|
|
39
|
+
}
|
|
40
|
+
export declare class DocumentDbAccessor {
|
|
41
|
+
private readonly _provider;
|
|
42
|
+
private readonly _moduleName;
|
|
43
|
+
private readonly _entityName;
|
|
44
|
+
private readonly _defaultOptions?;
|
|
45
|
+
/**
|
|
46
|
+
* Create a new DocumentDbAccessor
|
|
47
|
+
* @param principal - The authenticated principal
|
|
48
|
+
* @param dbService - The database service instance
|
|
49
|
+
* @param defaultOptions - Default provider options applied to all operations
|
|
50
|
+
*/
|
|
51
|
+
constructor(principal: any, dbService: any, defaultOptions?: DbProviderOptions);
|
|
52
|
+
get moduleName(): string;
|
|
53
|
+
get entityName(): string;
|
|
54
|
+
/**
|
|
55
|
+
* Create a new empty Document record instance for create operations.
|
|
56
|
+
* Pre-generates an ID that can be referenced before the record is saved.
|
|
57
|
+
*
|
|
58
|
+
* @param id - Optional ID to use (auto-generated UUID if not provided)
|
|
59
|
+
* @returns A new record wrapper with pre-generated ID
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* // Auto-generated ID
|
|
64
|
+
* const note = odinDb.notes.new();
|
|
65
|
+
* console.log(note.id); // UUID available immediately
|
|
66
|
+
*
|
|
67
|
+
* // Custom ID
|
|
68
|
+
* const order = odinDb.orders.new("custom-id-123");
|
|
69
|
+
*
|
|
70
|
+
* // Reference ID before save
|
|
71
|
+
* const account = odinDb.accounts.new();
|
|
72
|
+
* const contact = odinDb.contacts.new();
|
|
73
|
+
* await contact
|
|
74
|
+
* .link({ id: account.id, entity: "CrmModule:Account" })
|
|
75
|
+
* .createContact({ FirstName: "John" });
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
new(id?: string): DocumentRecord;
|
|
79
|
+
/**
|
|
80
|
+
* Get a single Document record by ID
|
|
81
|
+
*
|
|
82
|
+
* @param id - The record ID
|
|
83
|
+
* @param queryOptions - Query options (WHAT to fetch: entities to include)
|
|
84
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* // Simple get
|
|
89
|
+
* const record = await accessor.get(id);
|
|
90
|
+
*
|
|
91
|
+
* // With related entities
|
|
92
|
+
* const record = await accessor.get(id, { entities: ["Contact", "Address"] });
|
|
93
|
+
*
|
|
94
|
+
* // With permissions bypass
|
|
95
|
+
* const record = await accessor.get(id, {}, { omitPermissionsCheck: true });
|
|
96
|
+
*
|
|
97
|
+
* // Both options
|
|
98
|
+
* const record = await accessor.get(id, { entities: ["Invoice"] }, { omitPermissionsCheck: true });
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
get(id: string, queryOptions?: DbGetQueryOptions, providerOptions?: DbProviderOptions): Promise<DocumentRecord>;
|
|
102
|
+
/**
|
|
103
|
+
* Get multiple Document records by IDs
|
|
104
|
+
*
|
|
105
|
+
* @param ids - Array of record IDs
|
|
106
|
+
* @param queryOptions - Query options (WHAT to fetch: entities to include)
|
|
107
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
|
|
108
|
+
*/
|
|
109
|
+
getMany(ids: string[], queryOptions?: DbGetQueryOptions, providerOptions?: DbProviderOptions): Promise<DocumentRecord[]>;
|
|
110
|
+
/**
|
|
111
|
+
* Get Document records by the RECORD-LEVEL external id.
|
|
112
|
+
*
|
|
113
|
+
* Resolved server-side in Postgres against `record.external_id` - not a property
|
|
114
|
+
* search, and not reachable through `query()` (`externalId` is not a queryable
|
|
115
|
+
* column). Use this when an external system hands back its own identifier.
|
|
116
|
+
*
|
|
117
|
+
* Platform limits: max 5000 ids per call, each at most 36 characters. An unknown
|
|
118
|
+
* `type` is rejected with 400 `invalid type`.
|
|
119
|
+
*
|
|
120
|
+
* @param externalIds - The external ids to match (plural - the platform takes an array)
|
|
121
|
+
* @param queryOptions - Query options (WHAT to fetch: narrow by record type)
|
|
122
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck, withLinks)
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```typescript
|
|
126
|
+
* // Correlate a provider webhook back to the record it wrote
|
|
127
|
+
* const [message] = await accessor.getManyByExternalId([body.SmsSid]);
|
|
128
|
+
*
|
|
129
|
+
* // Narrowed by record type
|
|
130
|
+
* const closures = await accessor.getManyByExternalId(refs, { type: 'CLOSURE' });
|
|
131
|
+
*
|
|
132
|
+
* // Background job, no link hydration
|
|
133
|
+
* const records = await accessor.getManyByExternalId(refs, undefined, {
|
|
134
|
+
* omitPermissionsCheck: true,
|
|
135
|
+
* withLinks: false,
|
|
136
|
+
* });
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
getManyByExternalId(externalIds: string[], queryOptions?: DbExternalIdQueryOptions, providerOptions?: DbProviderOptions): Promise<DocumentRecord[]>;
|
|
140
|
+
/**
|
|
141
|
+
* Search Document records
|
|
142
|
+
*
|
|
143
|
+
* @param params - Search parameters
|
|
144
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
|
|
145
|
+
*/
|
|
146
|
+
search(params: Partial<OdinSearchV2>, providerOptions?: DbProviderOptions): Promise<DocumentDbSearchResponse>;
|
|
147
|
+
/**
|
|
148
|
+
* Search all Document records with automatic pagination
|
|
149
|
+
*
|
|
150
|
+
* @param params - Search parameters
|
|
151
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
|
|
152
|
+
*/
|
|
153
|
+
searchAll(params: Partial<OdinSearchV2>, providerOptions?: DbProviderOptions): Promise<DocumentRecord[]>;
|
|
154
|
+
/**
|
|
155
|
+
* Async generator for paginating through all matching records.
|
|
156
|
+
* Yields batches of wrapped records.
|
|
157
|
+
*
|
|
158
|
+
* @param params - Search parameters
|
|
159
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
|
|
160
|
+
*/
|
|
161
|
+
paginate(params: Partial<OdinSearchV2>, providerOptions?: DbProviderOptions): AsyncGenerator<DocumentRecord[]>;
|
|
162
|
+
/**
|
|
163
|
+
* Create a fluent query builder for Document records
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```typescript
|
|
167
|
+
* const results = await accessor
|
|
168
|
+
* .query()
|
|
169
|
+
* .where('Status', 'in', ['Active', 'Pending'])
|
|
170
|
+
* .where('CreatedAt', 'gte', '2025-01-01')
|
|
171
|
+
* .select('id', 'title', 'properties.*')
|
|
172
|
+
* .sortBy('createdAt', 'desc')
|
|
173
|
+
* .limit(100)
|
|
174
|
+
* .execute();
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
query(): QueryBuilder<DocumentProperties, DocumentRecord>;
|
|
178
|
+
/** Access the underlying DbProvider */
|
|
179
|
+
get provider(): DbProvider;
|
|
180
|
+
}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Document DB Accessor
|
|
4
|
+
*
|
|
5
|
+
* Provides typed access to Document records via direct database access.
|
|
6
|
+
* For use in backend services with principal + dbService.
|
|
7
|
+
* Returns wrapped records with typed action methods.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // Simple get
|
|
12
|
+
* const record = await accessor.get(id);
|
|
13
|
+
*
|
|
14
|
+
* // With related entities
|
|
15
|
+
* const record = await accessor.get(id, { entities: ["Contact", "Address"] });
|
|
16
|
+
*
|
|
17
|
+
* // With permissions bypass (separate options)
|
|
18
|
+
* const record = await accessor.get(id, {}, { omitPermissionsCheck: true });
|
|
19
|
+
*
|
|
20
|
+
* // Silent write (no RabbitMQ events)
|
|
21
|
+
* const result = await accessor.upsert([dto], { omitWriteEvents: true });
|
|
22
|
+
*
|
|
23
|
+
* // Constructor-level default (applies to all calls)
|
|
24
|
+
* const accessor = new DocumentDbAccessor(principal, dbService, { omitPermissionsCheck: true });
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* AUTO-GENERATED - DO NOT EDIT DIRECTLY
|
|
28
|
+
*/
|
|
29
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
30
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
31
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
32
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
33
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
34
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
35
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
|
|
39
|
+
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
40
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
41
|
+
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
42
|
+
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
43
|
+
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
|
|
44
|
+
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
45
|
+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
46
|
+
function fulfill(value) { resume("next", value); }
|
|
47
|
+
function reject(value) { resume("throw", value); }
|
|
48
|
+
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
49
|
+
};
|
|
50
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
|
+
exports.DocumentDbAccessor = void 0;
|
|
52
|
+
const db_provider_1 = require("@d19n/odin-sdk-generator/dist/db.provider");
|
|
53
|
+
const query_builder_1 = require("@d19n/odin-sdk-generator/dist/query-builder");
|
|
54
|
+
const DocumentRecord_1 = require("../records-v2/DocumentRecord");
|
|
55
|
+
class DocumentDbAccessor {
|
|
56
|
+
/**
|
|
57
|
+
* Create a new DocumentDbAccessor
|
|
58
|
+
* @param principal - The authenticated principal
|
|
59
|
+
* @param dbService - The database service instance
|
|
60
|
+
* @param defaultOptions - Default provider options applied to all operations
|
|
61
|
+
*/
|
|
62
|
+
constructor(principal, dbService, defaultOptions) {
|
|
63
|
+
this._moduleName = 'AiModule';
|
|
64
|
+
this._entityName = 'Document';
|
|
65
|
+
this._provider = new db_provider_1.DbProvider(principal, dbService, defaultOptions);
|
|
66
|
+
this._defaultOptions = defaultOptions;
|
|
67
|
+
}
|
|
68
|
+
get moduleName() { return this._moduleName; }
|
|
69
|
+
get entityName() { return this._entityName; }
|
|
70
|
+
// ============================================
|
|
71
|
+
// RECORD CREATION
|
|
72
|
+
// ============================================
|
|
73
|
+
/**
|
|
74
|
+
* Create a new empty Document record instance for create operations.
|
|
75
|
+
* Pre-generates an ID that can be referenced before the record is saved.
|
|
76
|
+
*
|
|
77
|
+
* @param id - Optional ID to use (auto-generated UUID if not provided)
|
|
78
|
+
* @returns A new record wrapper with pre-generated ID
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* // Auto-generated ID
|
|
83
|
+
* const note = odinDb.notes.new();
|
|
84
|
+
* console.log(note.id); // UUID available immediately
|
|
85
|
+
*
|
|
86
|
+
* // Custom ID
|
|
87
|
+
* const order = odinDb.orders.new("custom-id-123");
|
|
88
|
+
*
|
|
89
|
+
* // Reference ID before save
|
|
90
|
+
* const account = odinDb.accounts.new();
|
|
91
|
+
* const contact = odinDb.contacts.new();
|
|
92
|
+
* await contact
|
|
93
|
+
* .link({ id: account.id, entity: "CrmModule:Account" })
|
|
94
|
+
* .createContact({ FirstName: "John" });
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
new(id) {
|
|
98
|
+
return new DocumentRecord_1.DocumentRecord(null, this._provider, id);
|
|
99
|
+
}
|
|
100
|
+
// ============================================
|
|
101
|
+
// RECORD RETRIEVAL
|
|
102
|
+
// ============================================
|
|
103
|
+
/**
|
|
104
|
+
* Get a single Document record by ID
|
|
105
|
+
*
|
|
106
|
+
* @param id - The record ID
|
|
107
|
+
* @param queryOptions - Query options (WHAT to fetch: entities to include)
|
|
108
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```typescript
|
|
112
|
+
* // Simple get
|
|
113
|
+
* const record = await accessor.get(id);
|
|
114
|
+
*
|
|
115
|
+
* // With related entities
|
|
116
|
+
* const record = await accessor.get(id, { entities: ["Contact", "Address"] });
|
|
117
|
+
*
|
|
118
|
+
* // With permissions bypass
|
|
119
|
+
* const record = await accessor.get(id, {}, { omitPermissionsCheck: true });
|
|
120
|
+
*
|
|
121
|
+
* // Both options
|
|
122
|
+
* const record = await accessor.get(id, { entities: ["Invoice"] }, { omitPermissionsCheck: true });
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
get(id, queryOptions, providerOptions) {
|
|
126
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
127
|
+
const record = yield this._provider._getByPrimaryKey(this._moduleName, this._entityName, id, queryOptions, providerOptions);
|
|
128
|
+
return new DocumentRecord_1.DocumentRecord(record, this._provider);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Get multiple Document records by IDs
|
|
133
|
+
*
|
|
134
|
+
* @param ids - Array of record IDs
|
|
135
|
+
* @param queryOptions - Query options (WHAT to fetch: entities to include)
|
|
136
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
|
|
137
|
+
*/
|
|
138
|
+
getMany(ids, queryOptions, providerOptions) {
|
|
139
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
140
|
+
if (ids.length === 0)
|
|
141
|
+
return [];
|
|
142
|
+
const records = yield this._provider._getManyByPrimaryKey(this._moduleName, this._entityName, ids, queryOptions, providerOptions);
|
|
143
|
+
return records.map((r) => new DocumentRecord_1.DocumentRecord(r, this._provider));
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Get Document records by the RECORD-LEVEL external id.
|
|
148
|
+
*
|
|
149
|
+
* Resolved server-side in Postgres against `record.external_id` - not a property
|
|
150
|
+
* search, and not reachable through `query()` (`externalId` is not a queryable
|
|
151
|
+
* column). Use this when an external system hands back its own identifier.
|
|
152
|
+
*
|
|
153
|
+
* Platform limits: max 5000 ids per call, each at most 36 characters. An unknown
|
|
154
|
+
* `type` is rejected with 400 `invalid type`.
|
|
155
|
+
*
|
|
156
|
+
* @param externalIds - The external ids to match (plural - the platform takes an array)
|
|
157
|
+
* @param queryOptions - Query options (WHAT to fetch: narrow by record type)
|
|
158
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck, withLinks)
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```typescript
|
|
162
|
+
* // Correlate a provider webhook back to the record it wrote
|
|
163
|
+
* const [message] = await accessor.getManyByExternalId([body.SmsSid]);
|
|
164
|
+
*
|
|
165
|
+
* // Narrowed by record type
|
|
166
|
+
* const closures = await accessor.getManyByExternalId(refs, { type: 'CLOSURE' });
|
|
167
|
+
*
|
|
168
|
+
* // Background job, no link hydration
|
|
169
|
+
* const records = await accessor.getManyByExternalId(refs, undefined, {
|
|
170
|
+
* omitPermissionsCheck: true,
|
|
171
|
+
* withLinks: false,
|
|
172
|
+
* });
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
175
|
+
getManyByExternalId(externalIds, queryOptions, providerOptions) {
|
|
176
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
177
|
+
if (externalIds.length === 0)
|
|
178
|
+
return [];
|
|
179
|
+
const records = yield this._provider._getManyByExternalId(this._moduleName, this._entityName, externalIds, queryOptions, providerOptions);
|
|
180
|
+
return records.map((r) => new DocumentRecord_1.DocumentRecord(r, this._provider));
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
// ============================================
|
|
184
|
+
// SEARCH OPERATIONS
|
|
185
|
+
// ============================================
|
|
186
|
+
/**
|
|
187
|
+
* Search Document records
|
|
188
|
+
*
|
|
189
|
+
* @param params - Search parameters
|
|
190
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
|
|
191
|
+
*/
|
|
192
|
+
search(params, providerOptions) {
|
|
193
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
194
|
+
const result = yield this._provider._searchRecords(this._moduleName, this._entityName, params, providerOptions);
|
|
195
|
+
return {
|
|
196
|
+
records: result.records.map((r) => new DocumentRecord_1.DocumentRecord(r, this._provider)),
|
|
197
|
+
totalRecords: result.totalRecords,
|
|
198
|
+
hasMore: result.hasMore,
|
|
199
|
+
aggregations: result.aggregations,
|
|
200
|
+
};
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Search all Document records with automatic pagination
|
|
205
|
+
*
|
|
206
|
+
* @param params - Search parameters
|
|
207
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
|
|
208
|
+
*/
|
|
209
|
+
searchAll(params, providerOptions) {
|
|
210
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
211
|
+
const result = yield this._provider._searchAllRecordsAndPaginate(this._moduleName, this._entityName, params, 0, providerOptions);
|
|
212
|
+
return result.records.map((r) => new DocumentRecord_1.DocumentRecord(r, this._provider));
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Async generator for paginating through all matching records.
|
|
217
|
+
* Yields batches of wrapped records.
|
|
218
|
+
*
|
|
219
|
+
* @param params - Search parameters
|
|
220
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
|
|
221
|
+
*/
|
|
222
|
+
paginate(params, providerOptions) {
|
|
223
|
+
var _a;
|
|
224
|
+
return __asyncGenerator(this, arguments, function* paginate_1() {
|
|
225
|
+
let hasMore = true;
|
|
226
|
+
let searchAfter;
|
|
227
|
+
const query = Object.assign(Object.assign({}, params.query), { pageSize: ((_a = params.query) === null || _a === void 0 ? void 0 : _a.pageSize) || 500 });
|
|
228
|
+
while (hasMore) {
|
|
229
|
+
const result = yield __await(this._provider._searchRecords(this._moduleName, this._entityName, Object.assign(Object.assign({}, params), { query: Object.assign(Object.assign({}, query), { searchAfter }) }), providerOptions));
|
|
230
|
+
if (result.records.length > 0) {
|
|
231
|
+
yield yield __await(result.records.map((r) => new DocumentRecord_1.DocumentRecord(r, this._provider)));
|
|
232
|
+
const lastRecord = result.records[result.records.length - 1];
|
|
233
|
+
searchAfter = lastRecord === null || lastRecord === void 0 ? void 0 : lastRecord.sort;
|
|
234
|
+
}
|
|
235
|
+
hasMore = result.hasMore && result.records.length >= query.pageSize;
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
// ============================================
|
|
240
|
+
// QUERY BUILDER
|
|
241
|
+
// ============================================
|
|
242
|
+
/**
|
|
243
|
+
* Create a fluent query builder for Document records
|
|
244
|
+
*
|
|
245
|
+
* @example
|
|
246
|
+
* ```typescript
|
|
247
|
+
* const results = await accessor
|
|
248
|
+
* .query()
|
|
249
|
+
* .where('Status', 'in', ['Active', 'Pending'])
|
|
250
|
+
* .where('CreatedAt', 'gte', '2025-01-01')
|
|
251
|
+
* .select('id', 'title', 'properties.*')
|
|
252
|
+
* .sortBy('createdAt', 'desc')
|
|
253
|
+
* .limit(100)
|
|
254
|
+
* .execute();
|
|
255
|
+
* ```
|
|
256
|
+
*/
|
|
257
|
+
query() {
|
|
258
|
+
return (0, query_builder_1.createQueryBuilder)(this);
|
|
259
|
+
}
|
|
260
|
+
/** Access the underlying DbProvider */
|
|
261
|
+
get provider() {
|
|
262
|
+
return this._provider;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
exports.DocumentDbAccessor = DocumentDbAccessor;
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DocumentProcessing DB Accessor
|
|
3
|
+
*
|
|
4
|
+
* Provides typed access to DocumentProcessing records via direct database access.
|
|
5
|
+
* For use in backend services with principal + dbService.
|
|
6
|
+
* Returns wrapped records with typed action methods.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // Simple get
|
|
11
|
+
* const record = await accessor.get(id);
|
|
12
|
+
*
|
|
13
|
+
* // With related entities
|
|
14
|
+
* const record = await accessor.get(id, { entities: ["Contact", "Address"] });
|
|
15
|
+
*
|
|
16
|
+
* // With permissions bypass (separate options)
|
|
17
|
+
* const record = await accessor.get(id, {}, { omitPermissionsCheck: true });
|
|
18
|
+
*
|
|
19
|
+
* // Silent write (no RabbitMQ events)
|
|
20
|
+
* const result = await accessor.upsert([dto], { omitWriteEvents: true });
|
|
21
|
+
*
|
|
22
|
+
* // Constructor-level default (applies to all calls)
|
|
23
|
+
* const accessor = new DocumentProcessingDbAccessor(principal, dbService, { omitPermissionsCheck: true });
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* AUTO-GENERATED - DO NOT EDIT DIRECTLY
|
|
27
|
+
*/
|
|
28
|
+
import { OdinSearchV2 } from '@d19n/odin-types/dist/core';
|
|
29
|
+
import { DbProvider, DbProviderOptions, DbGetQueryOptions, DbExternalIdQueryOptions } from '@d19n/odin-sdk-generator/dist/db.provider';
|
|
30
|
+
import { QueryBuilder } from '@d19n/odin-sdk-generator/dist/query-builder';
|
|
31
|
+
import { DocumentProcessingProperties } from '../entities-v2/DocumentProcessing';
|
|
32
|
+
import { DocumentProcessingRecord } from '../records-v2/DocumentProcessingRecord';
|
|
33
|
+
/** Search response with wrapped records */
|
|
34
|
+
export interface DocumentProcessingDbSearchResponse {
|
|
35
|
+
records: DocumentProcessingRecord[];
|
|
36
|
+
totalRecords: number;
|
|
37
|
+
hasMore: boolean;
|
|
38
|
+
aggregations?: Record<string, any>;
|
|
39
|
+
}
|
|
40
|
+
export declare class DocumentProcessingDbAccessor {
|
|
41
|
+
private readonly _provider;
|
|
42
|
+
private readonly _moduleName;
|
|
43
|
+
private readonly _entityName;
|
|
44
|
+
private readonly _defaultOptions?;
|
|
45
|
+
/**
|
|
46
|
+
* Create a new DocumentProcessingDbAccessor
|
|
47
|
+
* @param principal - The authenticated principal
|
|
48
|
+
* @param dbService - The database service instance
|
|
49
|
+
* @param defaultOptions - Default provider options applied to all operations
|
|
50
|
+
*/
|
|
51
|
+
constructor(principal: any, dbService: any, defaultOptions?: DbProviderOptions);
|
|
52
|
+
get moduleName(): string;
|
|
53
|
+
get entityName(): string;
|
|
54
|
+
/**
|
|
55
|
+
* Create a new empty DocumentProcessing record instance for create operations.
|
|
56
|
+
* Pre-generates an ID that can be referenced before the record is saved.
|
|
57
|
+
*
|
|
58
|
+
* @param id - Optional ID to use (auto-generated UUID if not provided)
|
|
59
|
+
* @returns A new record wrapper with pre-generated ID
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* // Auto-generated ID
|
|
64
|
+
* const note = odinDb.notes.new();
|
|
65
|
+
* console.log(note.id); // UUID available immediately
|
|
66
|
+
*
|
|
67
|
+
* // Custom ID
|
|
68
|
+
* const order = odinDb.orders.new("custom-id-123");
|
|
69
|
+
*
|
|
70
|
+
* // Reference ID before save
|
|
71
|
+
* const account = odinDb.accounts.new();
|
|
72
|
+
* const contact = odinDb.contacts.new();
|
|
73
|
+
* await contact
|
|
74
|
+
* .link({ id: account.id, entity: "CrmModule:Account" })
|
|
75
|
+
* .createContact({ FirstName: "John" });
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
new(id?: string): DocumentProcessingRecord;
|
|
79
|
+
/**
|
|
80
|
+
* Get a single DocumentProcessing record by ID
|
|
81
|
+
*
|
|
82
|
+
* @param id - The record ID
|
|
83
|
+
* @param queryOptions - Query options (WHAT to fetch: entities to include)
|
|
84
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* // Simple get
|
|
89
|
+
* const record = await accessor.get(id);
|
|
90
|
+
*
|
|
91
|
+
* // With related entities
|
|
92
|
+
* const record = await accessor.get(id, { entities: ["Contact", "Address"] });
|
|
93
|
+
*
|
|
94
|
+
* // With permissions bypass
|
|
95
|
+
* const record = await accessor.get(id, {}, { omitPermissionsCheck: true });
|
|
96
|
+
*
|
|
97
|
+
* // Both options
|
|
98
|
+
* const record = await accessor.get(id, { entities: ["Invoice"] }, { omitPermissionsCheck: true });
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
get(id: string, queryOptions?: DbGetQueryOptions, providerOptions?: DbProviderOptions): Promise<DocumentProcessingRecord>;
|
|
102
|
+
/**
|
|
103
|
+
* Get multiple DocumentProcessing records by IDs
|
|
104
|
+
*
|
|
105
|
+
* @param ids - Array of record IDs
|
|
106
|
+
* @param queryOptions - Query options (WHAT to fetch: entities to include)
|
|
107
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
|
|
108
|
+
*/
|
|
109
|
+
getMany(ids: string[], queryOptions?: DbGetQueryOptions, providerOptions?: DbProviderOptions): Promise<DocumentProcessingRecord[]>;
|
|
110
|
+
/**
|
|
111
|
+
* Get DocumentProcessing records by the RECORD-LEVEL external id.
|
|
112
|
+
*
|
|
113
|
+
* Resolved server-side in Postgres against `record.external_id` - not a property
|
|
114
|
+
* search, and not reachable through `query()` (`externalId` is not a queryable
|
|
115
|
+
* column). Use this when an external system hands back its own identifier.
|
|
116
|
+
*
|
|
117
|
+
* Platform limits: max 5000 ids per call, each at most 36 characters. An unknown
|
|
118
|
+
* `type` is rejected with 400 `invalid type`.
|
|
119
|
+
*
|
|
120
|
+
* @param externalIds - The external ids to match (plural - the platform takes an array)
|
|
121
|
+
* @param queryOptions - Query options (WHAT to fetch: narrow by record type)
|
|
122
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck, withLinks)
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```typescript
|
|
126
|
+
* // Correlate a provider webhook back to the record it wrote
|
|
127
|
+
* const [message] = await accessor.getManyByExternalId([body.SmsSid]);
|
|
128
|
+
*
|
|
129
|
+
* // Narrowed by record type
|
|
130
|
+
* const closures = await accessor.getManyByExternalId(refs, { type: 'CLOSURE' });
|
|
131
|
+
*
|
|
132
|
+
* // Background job, no link hydration
|
|
133
|
+
* const records = await accessor.getManyByExternalId(refs, undefined, {
|
|
134
|
+
* omitPermissionsCheck: true,
|
|
135
|
+
* withLinks: false,
|
|
136
|
+
* });
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
getManyByExternalId(externalIds: string[], queryOptions?: DbExternalIdQueryOptions, providerOptions?: DbProviderOptions): Promise<DocumentProcessingRecord[]>;
|
|
140
|
+
/**
|
|
141
|
+
* Search DocumentProcessing records
|
|
142
|
+
*
|
|
143
|
+
* @param params - Search parameters
|
|
144
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
|
|
145
|
+
*/
|
|
146
|
+
search(params: Partial<OdinSearchV2>, providerOptions?: DbProviderOptions): Promise<DocumentProcessingDbSearchResponse>;
|
|
147
|
+
/**
|
|
148
|
+
* Search all DocumentProcessing records with automatic pagination
|
|
149
|
+
*
|
|
150
|
+
* @param params - Search parameters
|
|
151
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
|
|
152
|
+
*/
|
|
153
|
+
searchAll(params: Partial<OdinSearchV2>, providerOptions?: DbProviderOptions): Promise<DocumentProcessingRecord[]>;
|
|
154
|
+
/**
|
|
155
|
+
* Async generator for paginating through all matching records.
|
|
156
|
+
* Yields batches of wrapped records.
|
|
157
|
+
*
|
|
158
|
+
* @param params - Search parameters
|
|
159
|
+
* @param providerOptions - Provider options (HOW to fetch: omitPermissionsCheck)
|
|
160
|
+
*/
|
|
161
|
+
paginate(params: Partial<OdinSearchV2>, providerOptions?: DbProviderOptions): AsyncGenerator<DocumentProcessingRecord[]>;
|
|
162
|
+
/**
|
|
163
|
+
* Create a fluent query builder for DocumentProcessing records
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```typescript
|
|
167
|
+
* const results = await accessor
|
|
168
|
+
* .query()
|
|
169
|
+
* .where('Status', 'in', ['Active', 'Pending'])
|
|
170
|
+
* .where('CreatedAt', 'gte', '2025-01-01')
|
|
171
|
+
* .select('id', 'title', 'properties.*')
|
|
172
|
+
* .sortBy('createdAt', 'desc')
|
|
173
|
+
* .limit(100)
|
|
174
|
+
* .execute();
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
query(): QueryBuilder<DocumentProcessingProperties, DocumentProcessingRecord>;
|
|
178
|
+
/** Access the underlying DbProvider */
|
|
179
|
+
get provider(): DbProvider;
|
|
180
|
+
}
|