@dynamatix/gb-schemas 2.3.321 → 2.3.322

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.
@@ -54,7 +54,19 @@ declare const ApplicationsTaskModel: mongoose.Model<{
54
54
  };
55
55
  statusDate: string;
56
56
  statusReason: string;
57
- comments: string[];
57
+ comments: mongoose.Types.DocumentArray<{
58
+ createdAt: NativeDate;
59
+ message: string;
60
+ createdBy: mongoose.Types.ObjectId;
61
+ }, mongoose.Types.Subdocument<mongoose.Types.ObjectId, any, {
62
+ createdAt: NativeDate;
63
+ message: string;
64
+ createdBy: mongoose.Types.ObjectId;
65
+ }> & {
66
+ createdAt: NativeDate;
67
+ message: string;
68
+ createdBy: mongoose.Types.ObjectId;
69
+ }>;
58
70
  status?: number | null | undefined;
59
71
  checkflowId?: string | null | undefined;
60
72
  instanceId?: string | null | undefined;
@@ -85,7 +97,19 @@ declare const ApplicationsTaskModel: mongoose.Model<{
85
97
  };
86
98
  statusDate: string;
87
99
  statusReason: string;
88
- comments: string[];
100
+ comments: mongoose.Types.DocumentArray<{
101
+ createdAt: NativeDate;
102
+ message: string;
103
+ createdBy: mongoose.Types.ObjectId;
104
+ }, mongoose.Types.Subdocument<mongoose.Types.ObjectId, any, {
105
+ createdAt: NativeDate;
106
+ message: string;
107
+ createdBy: mongoose.Types.ObjectId;
108
+ }> & {
109
+ createdAt: NativeDate;
110
+ message: string;
111
+ createdBy: mongoose.Types.ObjectId;
112
+ }>;
89
113
  status?: number | null | undefined;
90
114
  checkflowId?: string | null | undefined;
91
115
  instanceId?: string | null | undefined;
@@ -116,7 +140,19 @@ declare const ApplicationsTaskModel: mongoose.Model<{
116
140
  };
117
141
  statusDate: string;
118
142
  statusReason: string;
119
- comments: string[];
143
+ comments: mongoose.Types.DocumentArray<{
144
+ createdAt: NativeDate;
145
+ message: string;
146
+ createdBy: mongoose.Types.ObjectId;
147
+ }, mongoose.Types.Subdocument<mongoose.Types.ObjectId, any, {
148
+ createdAt: NativeDate;
149
+ message: string;
150
+ createdBy: mongoose.Types.ObjectId;
151
+ }> & {
152
+ createdAt: NativeDate;
153
+ message: string;
154
+ createdBy: mongoose.Types.ObjectId;
155
+ }>;
120
156
  status?: number | null | undefined;
121
157
  checkflowId?: string | null | undefined;
122
158
  instanceId?: string | null | undefined;
@@ -153,7 +189,19 @@ declare const ApplicationsTaskModel: mongoose.Model<{
153
189
  };
154
190
  statusDate: string;
155
191
  statusReason: string;
156
- comments: string[];
192
+ comments: mongoose.Types.DocumentArray<{
193
+ createdAt: NativeDate;
194
+ message: string;
195
+ createdBy: mongoose.Types.ObjectId;
196
+ }, mongoose.Types.Subdocument<mongoose.Types.ObjectId, any, {
197
+ createdAt: NativeDate;
198
+ message: string;
199
+ createdBy: mongoose.Types.ObjectId;
200
+ }> & {
201
+ createdAt: NativeDate;
202
+ message: string;
203
+ createdBy: mongoose.Types.ObjectId;
204
+ }>;
157
205
  status?: number | null | undefined;
158
206
  checkflowId?: string | null | undefined;
159
207
  instanceId?: string | null | undefined;
@@ -184,7 +232,19 @@ declare const ApplicationsTaskModel: mongoose.Model<{
184
232
  };
185
233
  statusDate: string;
186
234
  statusReason: string;
187
- comments: string[];
235
+ comments: mongoose.Types.DocumentArray<{
236
+ createdAt: NativeDate;
237
+ message: string;
238
+ createdBy: mongoose.Types.ObjectId;
239
+ }, mongoose.Types.Subdocument<mongoose.Types.ObjectId, any, {
240
+ createdAt: NativeDate;
241
+ message: string;
242
+ createdBy: mongoose.Types.ObjectId;
243
+ }> & {
244
+ createdAt: NativeDate;
245
+ message: string;
246
+ createdBy: mongoose.Types.ObjectId;
247
+ }>;
188
248
  status?: number | null | undefined;
189
249
  checkflowId?: string | null | undefined;
190
250
  instanceId?: string | null | undefined;
@@ -215,7 +275,19 @@ declare const ApplicationsTaskModel: mongoose.Model<{
215
275
  };
216
276
  statusDate: string;
217
277
  statusReason: string;
218
- comments: string[];
278
+ comments: mongoose.Types.DocumentArray<{
279
+ createdAt: NativeDate;
280
+ message: string;
281
+ createdBy: mongoose.Types.ObjectId;
282
+ }, mongoose.Types.Subdocument<mongoose.Types.ObjectId, any, {
283
+ createdAt: NativeDate;
284
+ message: string;
285
+ createdBy: mongoose.Types.ObjectId;
286
+ }> & {
287
+ createdAt: NativeDate;
288
+ message: string;
289
+ createdBy: mongoose.Types.ObjectId;
290
+ }>;
219
291
  status?: number | null | undefined;
220
292
  checkflowId?: string | null | undefined;
221
293
  instanceId?: string | null | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"applications-task.model.d.ts","sourceRoot":"","sources":["../../applications/applications-task.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAgDhC,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA6D,CAAC;AACzF,eAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"applications-task.model.d.ts","sourceRoot":"","sources":["../../applications/applications-task.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAqDhC,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA6D,CAAC;AACzF,eAAe,qBAAqB,CAAC"}
@@ -33,7 +33,11 @@ const applicationsTaskSchema = new mongoose.Schema({
33
33
  statusReason: { type: String, default: "" },
34
34
  statusDate: { type: String, default: null },
35
35
  additionalData: { type: additionalDataSchema, required: true },
36
- comments: [{ type: String, default: "", maxlength: 2000 }],
36
+ comments: [{
37
+ createdBy: { type: mongoose.Schema.Types.ObjectId, ref: "User", required: true },
38
+ createdAt: { type: Date, default: Date.now },
39
+ message: { type: String, default: "", maxlength: 2000 }
40
+ }],
37
41
  createdOn: { type: String, required: true, default: () => new Date().toISOString() }
38
42
  }, { timestamps: true });
39
43
  applyAuditMiddleware(applicationsTaskSchema, "ApplicationsTask");
@@ -0,0 +1,180 @@
1
+ /// <reference path="../value-objects/pound.d.ts" />
2
+ /// <reference path="../value-objects/account-number.d.ts" />
3
+ /// <reference path="../value-objects/sort-code.d.ts" />
4
+ /// <reference types="mongoose/types/aggregate" />
5
+ /// <reference types="mongoose/types/callback" />
6
+ /// <reference types="mongoose/types/collection" />
7
+ /// <reference types="mongoose/types/connection" />
8
+ /// <reference types="mongoose/types/cursor" />
9
+ /// <reference types="mongoose/types/document" />
10
+ /// <reference types="mongoose/types/error" />
11
+ /// <reference types="mongoose/types/expressions" />
12
+ /// <reference types="mongoose/types/helpers" />
13
+ /// <reference types="mongoose/types/middlewares" />
14
+ /// <reference types="mongoose/types/indexes" />
15
+ /// <reference types="mongoose/types/models" />
16
+ /// <reference types="mongoose/types/mongooseoptions" />
17
+ /// <reference types="mongoose/types/pipelinestage" />
18
+ /// <reference types="mongoose/types/populate" />
19
+ /// <reference types="mongoose/types/query" />
20
+ /// <reference types="mongoose/types/schemaoptions" />
21
+ /// <reference types="mongoose/types/session" />
22
+ /// <reference types="mongoose/types/types" />
23
+ /// <reference types="mongoose/types/utility" />
24
+ /// <reference types="mongoose/types/validation" />
25
+ /// <reference types="mongoose/types/virtuals" />
26
+ /// <reference types="mongoose/types/schematypes" />
27
+ /// <reference types="mongoose/types/inferschematype" />
28
+ /// <reference types="mongoose/types/inferrawdoctype" />
29
+ import mongoose from "mongoose";
30
+ declare const AuditLogModel: mongoose.Model<{
31
+ name: string;
32
+ action: "read" | "create" | "update" | "delete";
33
+ timestamp: NativeDate;
34
+ recordId: mongoose.Types.ObjectId;
35
+ isSystemGenerated: boolean;
36
+ metadata?: any;
37
+ source?: string | null | undefined;
38
+ oldValue?: any;
39
+ newValue?: any;
40
+ fieldName?: string | null | undefined;
41
+ userId?: mongoose.Types.ObjectId | null | undefined;
42
+ ipAddress?: string | null | undefined;
43
+ userAgent?: string | null | undefined;
44
+ sessionId?: string | null | undefined;
45
+ externalData?: {
46
+ apprivoAuditId?: string | null | undefined;
47
+ syncStatus?: "pending" | "synced" | "failed" | null | undefined;
48
+ syncedAt?: NativeDate | null | undefined;
49
+ externalSystemId?: string | null | undefined;
50
+ } | null | undefined;
51
+ severity?: "low" | "medium" | "high" | "critical" | null | undefined;
52
+ }, {}, {}, {}, mongoose.Document<unknown, {}, {
53
+ name: string;
54
+ action: "read" | "create" | "update" | "delete";
55
+ timestamp: NativeDate;
56
+ recordId: mongoose.Types.ObjectId;
57
+ isSystemGenerated: boolean;
58
+ metadata?: any;
59
+ source?: string | null | undefined;
60
+ oldValue?: any;
61
+ newValue?: any;
62
+ fieldName?: string | null | undefined;
63
+ userId?: mongoose.Types.ObjectId | null | undefined;
64
+ ipAddress?: string | null | undefined;
65
+ userAgent?: string | null | undefined;
66
+ sessionId?: string | null | undefined;
67
+ externalData?: {
68
+ apprivoAuditId?: string | null | undefined;
69
+ syncStatus?: "pending" | "synced" | "failed" | null | undefined;
70
+ syncedAt?: NativeDate | null | undefined;
71
+ externalSystemId?: string | null | undefined;
72
+ } | null | undefined;
73
+ severity?: "low" | "medium" | "high" | "critical" | null | undefined;
74
+ }, {}> & {
75
+ name: string;
76
+ action: "read" | "create" | "update" | "delete";
77
+ timestamp: NativeDate;
78
+ recordId: mongoose.Types.ObjectId;
79
+ isSystemGenerated: boolean;
80
+ metadata?: any;
81
+ source?: string | null | undefined;
82
+ oldValue?: any;
83
+ newValue?: any;
84
+ fieldName?: string | null | undefined;
85
+ userId?: mongoose.Types.ObjectId | null | undefined;
86
+ ipAddress?: string | null | undefined;
87
+ userAgent?: string | null | undefined;
88
+ sessionId?: string | null | undefined;
89
+ externalData?: {
90
+ apprivoAuditId?: string | null | undefined;
91
+ syncStatus?: "pending" | "synced" | "failed" | null | undefined;
92
+ syncedAt?: NativeDate | null | undefined;
93
+ externalSystemId?: string | null | undefined;
94
+ } | null | undefined;
95
+ severity?: "low" | "medium" | "high" | "critical" | null | undefined;
96
+ } & {
97
+ _id: mongoose.Types.ObjectId;
98
+ } & {
99
+ __v: number;
100
+ }, mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
101
+ timestamps: false;
102
+ toJSON: {
103
+ virtuals: true;
104
+ };
105
+ toObject: {
106
+ virtuals: true;
107
+ };
108
+ }, {
109
+ name: string;
110
+ action: "read" | "create" | "update" | "delete";
111
+ timestamp: NativeDate;
112
+ recordId: mongoose.Types.ObjectId;
113
+ isSystemGenerated: boolean;
114
+ metadata?: any;
115
+ source?: string | null | undefined;
116
+ oldValue?: any;
117
+ newValue?: any;
118
+ fieldName?: string | null | undefined;
119
+ userId?: mongoose.Types.ObjectId | null | undefined;
120
+ ipAddress?: string | null | undefined;
121
+ userAgent?: string | null | undefined;
122
+ sessionId?: string | null | undefined;
123
+ externalData?: {
124
+ apprivoAuditId?: string | null | undefined;
125
+ syncStatus?: "pending" | "synced" | "failed" | null | undefined;
126
+ syncedAt?: NativeDate | null | undefined;
127
+ externalSystemId?: string | null | undefined;
128
+ } | null | undefined;
129
+ severity?: "low" | "medium" | "high" | "critical" | null | undefined;
130
+ }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
131
+ name: string;
132
+ action: "read" | "create" | "update" | "delete";
133
+ timestamp: NativeDate;
134
+ recordId: mongoose.Types.ObjectId;
135
+ isSystemGenerated: boolean;
136
+ metadata?: any;
137
+ source?: string | null | undefined;
138
+ oldValue?: any;
139
+ newValue?: any;
140
+ fieldName?: string | null | undefined;
141
+ userId?: mongoose.Types.ObjectId | null | undefined;
142
+ ipAddress?: string | null | undefined;
143
+ userAgent?: string | null | undefined;
144
+ sessionId?: string | null | undefined;
145
+ externalData?: {
146
+ apprivoAuditId?: string | null | undefined;
147
+ syncStatus?: "pending" | "synced" | "failed" | null | undefined;
148
+ syncedAt?: NativeDate | null | undefined;
149
+ externalSystemId?: string | null | undefined;
150
+ } | null | undefined;
151
+ severity?: "low" | "medium" | "high" | "critical" | null | undefined;
152
+ }>, {}> & mongoose.FlatRecord<{
153
+ name: string;
154
+ action: "read" | "create" | "update" | "delete";
155
+ timestamp: NativeDate;
156
+ recordId: mongoose.Types.ObjectId;
157
+ isSystemGenerated: boolean;
158
+ metadata?: any;
159
+ source?: string | null | undefined;
160
+ oldValue?: any;
161
+ newValue?: any;
162
+ fieldName?: string | null | undefined;
163
+ userId?: mongoose.Types.ObjectId | null | undefined;
164
+ ipAddress?: string | null | undefined;
165
+ userAgent?: string | null | undefined;
166
+ sessionId?: string | null | undefined;
167
+ externalData?: {
168
+ apprivoAuditId?: string | null | undefined;
169
+ syncStatus?: "pending" | "synced" | "failed" | null | undefined;
170
+ syncedAt?: NativeDate | null | undefined;
171
+ externalSystemId?: string | null | undefined;
172
+ } | null | undefined;
173
+ severity?: "low" | "medium" | "high" | "critical" | null | undefined;
174
+ }> & {
175
+ _id: mongoose.Types.ObjectId;
176
+ } & {
177
+ __v: number;
178
+ }>>;
179
+ export default AuditLogModel;
180
+ //# sourceMappingURL=audit-log.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-log.model.d.ts","sourceRoot":"","sources":["../../shared/audit-log.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AA6ChC,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA6C,CAAC;AACjE,eAAe,aAAa,CAAC"}
@@ -0,0 +1,43 @@
1
+ import mongoose from "mongoose";
2
+ const auditLogSchema = new mongoose.Schema({
3
+ name: { type: String, required: true }, // Collection/model name
4
+ recordId: { type: mongoose.Schema.Types.ObjectId, required: true }, // ID of the record being audited
5
+ action: { type: String, required: true, enum: ['create', 'update', 'delete', 'read'] },
6
+ userId: { type: mongoose.Schema.Types.ObjectId, ref: "User", required: false }, // User who performed the action
7
+ timestamp: { type: Date, default: Date.now, required: true },
8
+ oldValue: { type: mongoose.Schema.Types.Mixed, required: false }, // Previous value
9
+ newValue: { type: mongoose.Schema.Types.Mixed, required: false }, // New value
10
+ fieldName: { type: String, required: false }, // Specific field that changed
11
+ ipAddress: { type: String, required: false },
12
+ userAgent: { type: String, required: false },
13
+ sessionId: { type: String, required: false },
14
+ source: { type: String, required: false, default: 'application' }, // Source of the change
15
+ metadata: { type: mongoose.Schema.Types.Mixed, required: false },
16
+ externalData: {
17
+ apprivoAuditId: { type: String, required: false }, // External system audit ID
18
+ syncStatus: { type: String, required: false, enum: ['pending', 'synced', 'failed'] },
19
+ syncedAt: { type: Date, required: false },
20
+ externalSystemId: { type: String, required: false }
21
+ },
22
+ isSystemGenerated: { type: Boolean, default: false },
23
+ severity: { type: String, required: false, enum: ['low', 'medium', 'high', 'critical'], default: 'low' }
24
+ }, {
25
+ timestamps: false, // We use our own timestamp field
26
+ toJSON: { virtuals: true },
27
+ toObject: { virtuals: true }
28
+ });
29
+ // Virtual for formatted timestamp
30
+ auditLogSchema.virtual('formattedTimestamp').get(function () {
31
+ return this.timestamp ? this.timestamp.toISOString() : null;
32
+ });
33
+ // Add indexes to match database
34
+ auditLogSchema.index({ 'externalData.apprivoAuditId': 1 }); // External audit ID lookup
35
+ auditLogSchema.index({ name: 1, newValue: 1, recordId: 1, timestamp: -1 }); // Complex compound index
36
+ auditLogSchema.index({ name: 1, recordId: 1 }); // Filter by collection and record
37
+ auditLogSchema.index({ recordId: 1, timestamp: -1, _id: -1 }); // Record history with fallback sort
38
+ auditLogSchema.index({ timestamp: -1 }); // Sort by recent changes
39
+ auditLogSchema.index({ userId: 1, timestamp: -1 }); // User activity history
40
+ auditLogSchema.index({ action: 1, timestamp: -1 }); // Filter by action type
41
+ auditLogSchema.index({ name: 1, action: 1, timestamp: -1 }); // Collection-specific action history
42
+ const AuditLogModel = mongoose.model("AuditLog", auditLogSchema);
43
+ export default AuditLogModel;
@@ -0,0 +1,180 @@
1
+ /// <reference path="../value-objects/pound.d.ts" />
2
+ /// <reference path="../value-objects/account-number.d.ts" />
3
+ /// <reference path="../value-objects/sort-code.d.ts" />
4
+ /// <reference types="mongoose/types/aggregate" />
5
+ /// <reference types="mongoose/types/callback" />
6
+ /// <reference types="mongoose/types/collection" />
7
+ /// <reference types="mongoose/types/connection" />
8
+ /// <reference types="mongoose/types/cursor" />
9
+ /// <reference types="mongoose/types/document" />
10
+ /// <reference types="mongoose/types/error" />
11
+ /// <reference types="mongoose/types/expressions" />
12
+ /// <reference types="mongoose/types/helpers" />
13
+ /// <reference types="mongoose/types/middlewares" />
14
+ /// <reference types="mongoose/types/indexes" />
15
+ /// <reference types="mongoose/types/models" />
16
+ /// <reference types="mongoose/types/mongooseoptions" />
17
+ /// <reference types="mongoose/types/pipelinestage" />
18
+ /// <reference types="mongoose/types/populate" />
19
+ /// <reference types="mongoose/types/query" />
20
+ /// <reference types="mongoose/types/schemaoptions" />
21
+ /// <reference types="mongoose/types/session" />
22
+ /// <reference types="mongoose/types/types" />
23
+ /// <reference types="mongoose/types/utility" />
24
+ /// <reference types="mongoose/types/validation" />
25
+ /// <reference types="mongoose/types/virtuals" />
26
+ /// <reference types="mongoose/types/schematypes" />
27
+ /// <reference types="mongoose/types/inferschematype" />
28
+ /// <reference types="mongoose/types/inferrawdoctype" />
29
+ import mongoose from "mongoose";
30
+ declare const DocumentModel: mongoose.Model<{
31
+ createdAt: NativeDate;
32
+ updatedAt: NativeDate;
33
+ } & {
34
+ isActive: boolean;
35
+ applicationId: mongoose.Types.ObjectId;
36
+ status: "pending" | "uploaded" | "verified" | "rejected" | "archived";
37
+ category: string;
38
+ fileName: string;
39
+ originalName: string;
40
+ mimeType: string;
41
+ fileSize: number;
42
+ filePath: string;
43
+ uploadedBy: mongoose.Types.ObjectId;
44
+ tags: string[];
45
+ metadata?: any;
46
+ contextId?: mongoose.Types.ObjectId | null | undefined;
47
+ rejectionReason?: string | null | undefined;
48
+ subCategory?: string | null | undefined;
49
+ verifiedBy?: mongoose.Types.ObjectId | null | undefined;
50
+ verifiedAt?: NativeDate | null | undefined;
51
+ expiresAt?: NativeDate | null | undefined;
52
+ }, {}, {}, {}, mongoose.Document<unknown, {}, {
53
+ createdAt: NativeDate;
54
+ updatedAt: NativeDate;
55
+ } & {
56
+ isActive: boolean;
57
+ applicationId: mongoose.Types.ObjectId;
58
+ status: "pending" | "uploaded" | "verified" | "rejected" | "archived";
59
+ category: string;
60
+ fileName: string;
61
+ originalName: string;
62
+ mimeType: string;
63
+ fileSize: number;
64
+ filePath: string;
65
+ uploadedBy: mongoose.Types.ObjectId;
66
+ tags: string[];
67
+ metadata?: any;
68
+ contextId?: mongoose.Types.ObjectId | null | undefined;
69
+ rejectionReason?: string | null | undefined;
70
+ subCategory?: string | null | undefined;
71
+ verifiedBy?: mongoose.Types.ObjectId | null | undefined;
72
+ verifiedAt?: NativeDate | null | undefined;
73
+ expiresAt?: NativeDate | null | undefined;
74
+ }, {}> & {
75
+ createdAt: NativeDate;
76
+ updatedAt: NativeDate;
77
+ } & {
78
+ isActive: boolean;
79
+ applicationId: mongoose.Types.ObjectId;
80
+ status: "pending" | "uploaded" | "verified" | "rejected" | "archived";
81
+ category: string;
82
+ fileName: string;
83
+ originalName: string;
84
+ mimeType: string;
85
+ fileSize: number;
86
+ filePath: string;
87
+ uploadedBy: mongoose.Types.ObjectId;
88
+ tags: string[];
89
+ metadata?: any;
90
+ contextId?: mongoose.Types.ObjectId | null | undefined;
91
+ rejectionReason?: string | null | undefined;
92
+ subCategory?: string | null | undefined;
93
+ verifiedBy?: mongoose.Types.ObjectId | null | undefined;
94
+ verifiedAt?: NativeDate | null | undefined;
95
+ expiresAt?: NativeDate | null | undefined;
96
+ } & {
97
+ _id: mongoose.Types.ObjectId;
98
+ } & {
99
+ __v: number;
100
+ }, mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
101
+ timestamps: true;
102
+ toJSON: {
103
+ virtuals: true;
104
+ };
105
+ toObject: {
106
+ virtuals: true;
107
+ };
108
+ }, {
109
+ createdAt: NativeDate;
110
+ updatedAt: NativeDate;
111
+ } & {
112
+ isActive: boolean;
113
+ applicationId: mongoose.Types.ObjectId;
114
+ status: "pending" | "uploaded" | "verified" | "rejected" | "archived";
115
+ category: string;
116
+ fileName: string;
117
+ originalName: string;
118
+ mimeType: string;
119
+ fileSize: number;
120
+ filePath: string;
121
+ uploadedBy: mongoose.Types.ObjectId;
122
+ tags: string[];
123
+ metadata?: any;
124
+ contextId?: mongoose.Types.ObjectId | null | undefined;
125
+ rejectionReason?: string | null | undefined;
126
+ subCategory?: string | null | undefined;
127
+ verifiedBy?: mongoose.Types.ObjectId | null | undefined;
128
+ verifiedAt?: NativeDate | null | undefined;
129
+ expiresAt?: NativeDate | null | undefined;
130
+ }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
131
+ createdAt: NativeDate;
132
+ updatedAt: NativeDate;
133
+ } & {
134
+ isActive: boolean;
135
+ applicationId: mongoose.Types.ObjectId;
136
+ status: "pending" | "uploaded" | "verified" | "rejected" | "archived";
137
+ category: string;
138
+ fileName: string;
139
+ originalName: string;
140
+ mimeType: string;
141
+ fileSize: number;
142
+ filePath: string;
143
+ uploadedBy: mongoose.Types.ObjectId;
144
+ tags: string[];
145
+ metadata?: any;
146
+ contextId?: mongoose.Types.ObjectId | null | undefined;
147
+ rejectionReason?: string | null | undefined;
148
+ subCategory?: string | null | undefined;
149
+ verifiedBy?: mongoose.Types.ObjectId | null | undefined;
150
+ verifiedAt?: NativeDate | null | undefined;
151
+ expiresAt?: NativeDate | null | undefined;
152
+ }>, {}> & mongoose.FlatRecord<{
153
+ createdAt: NativeDate;
154
+ updatedAt: NativeDate;
155
+ } & {
156
+ isActive: boolean;
157
+ applicationId: mongoose.Types.ObjectId;
158
+ status: "pending" | "uploaded" | "verified" | "rejected" | "archived";
159
+ category: string;
160
+ fileName: string;
161
+ originalName: string;
162
+ mimeType: string;
163
+ fileSize: number;
164
+ filePath: string;
165
+ uploadedBy: mongoose.Types.ObjectId;
166
+ tags: string[];
167
+ metadata?: any;
168
+ contextId?: mongoose.Types.ObjectId | null | undefined;
169
+ rejectionReason?: string | null | undefined;
170
+ subCategory?: string | null | undefined;
171
+ verifiedBy?: mongoose.Types.ObjectId | null | undefined;
172
+ verifiedAt?: NativeDate | null | undefined;
173
+ expiresAt?: NativeDate | null | undefined;
174
+ }> & {
175
+ _id: mongoose.Types.ObjectId;
176
+ } & {
177
+ __v: number;
178
+ }>>;
179
+ export default DocumentModel;
180
+ //# sourceMappingURL=document.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.model.d.ts","sourceRoot":"","sources":["../../shared/document.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AA0ChC,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA6C,CAAC;AACjE,eAAe,aAAa,CAAC"}
@@ -0,0 +1,40 @@
1
+ import mongoose from "mongoose";
2
+ import { applyAuditMiddleware } from "@dynamatix/cat-shared/middlewares";
3
+ import { applyWorkflowPlugin } from "./workflow.plugin";
4
+ const documentSchema = new mongoose.Schema({
5
+ applicationId: { type: mongoose.Schema.Types.ObjectId, ref: "Application", required: true },
6
+ contextId: { type: mongoose.Schema.Types.ObjectId, required: false },
7
+ status: { type: String, required: true, enum: ['pending', 'uploaded', 'verified', 'rejected', 'archived'] },
8
+ category: { type: String, required: true },
9
+ subCategory: { type: String, required: false },
10
+ fileName: { type: String, required: true },
11
+ originalName: { type: String, required: true },
12
+ mimeType: { type: String, required: true },
13
+ fileSize: { type: Number, required: true },
14
+ filePath: { type: String, required: true },
15
+ uploadedBy: { type: mongoose.Schema.Types.ObjectId, ref: "User", required: true },
16
+ verifiedBy: { type: mongoose.Schema.Types.ObjectId, ref: "User", required: false },
17
+ verifiedAt: { type: Date, required: false },
18
+ rejectionReason: { type: String, required: false },
19
+ metadata: { type: mongoose.Schema.Types.Mixed, required: false },
20
+ tags: [{ type: String }],
21
+ isActive: { type: Boolean, default: true },
22
+ expiresAt: { type: Date, required: false }
23
+ }, {
24
+ timestamps: true,
25
+ toJSON: { virtuals: true },
26
+ toObject: { virtuals: true }
27
+ });
28
+ applyAuditMiddleware(documentSchema, "Document");
29
+ applyWorkflowPlugin(documentSchema, 'document');
30
+ // Add indexes to match database
31
+ documentSchema.index({ applicationId: 1 }); // Filter by application
32
+ documentSchema.index({ contextId: 1 }); // Filter by context
33
+ documentSchema.index({ status: 1 }); // Filter by status
34
+ documentSchema.index({ category: 1 }); // Filter by category
35
+ documentSchema.index({ subCategory: 1 }); // Filter by subcategory
36
+ documentSchema.index({ applicationId: 1, status: 1 }); // Compound: application + status
37
+ documentSchema.index({ contextId: 1, status: 1 }); // Compound: context + status
38
+ documentSchema.index({ category: 1, status: 1 }); // Compound: category + status
39
+ const DocumentModel = mongoose.model("Document", documentSchema);
40
+ export default DocumentModel;
@@ -0,0 +1,180 @@
1
+ /// <reference path="../value-objects/pound.d.ts" />
2
+ /// <reference path="../value-objects/account-number.d.ts" />
3
+ /// <reference path="../value-objects/sort-code.d.ts" />
4
+ /// <reference types="mongoose/types/aggregate" />
5
+ /// <reference types="mongoose/types/callback" />
6
+ /// <reference types="mongoose/types/collection" />
7
+ /// <reference types="mongoose/types/connection" />
8
+ /// <reference types="mongoose/types/cursor" />
9
+ /// <reference types="mongoose/types/document" />
10
+ /// <reference types="mongoose/types/error" />
11
+ /// <reference types="mongoose/types/expressions" />
12
+ /// <reference types="mongoose/types/helpers" />
13
+ /// <reference types="mongoose/types/middlewares" />
14
+ /// <reference types="mongoose/types/indexes" />
15
+ /// <reference types="mongoose/types/models" />
16
+ /// <reference types="mongoose/types/mongooseoptions" />
17
+ /// <reference types="mongoose/types/pipelinestage" />
18
+ /// <reference types="mongoose/types/populate" />
19
+ /// <reference types="mongoose/types/query" />
20
+ /// <reference types="mongoose/types/schemaoptions" />
21
+ /// <reference types="mongoose/types/session" />
22
+ /// <reference types="mongoose/types/types" />
23
+ /// <reference types="mongoose/types/utility" />
24
+ /// <reference types="mongoose/types/validation" />
25
+ /// <reference types="mongoose/types/virtuals" />
26
+ /// <reference types="mongoose/types/schematypes" />
27
+ /// <reference types="mongoose/types/inferschematype" />
28
+ /// <reference types="mongoose/types/inferrawdoctype" />
29
+ import mongoose from "mongoose";
30
+ declare const QueueModel: mongoose.Model<{
31
+ createdAt: NativeDate;
32
+ updatedAt: NativeDate;
33
+ } & {
34
+ isActive: boolean;
35
+ name: string;
36
+ retryAttempts: number;
37
+ retryDelay: number;
38
+ priority: number;
39
+ maxConcurrency: number;
40
+ processingTimeout: number;
41
+ assignedUsers: mongoose.Types.ObjectId[];
42
+ description?: string | null | undefined;
43
+ departmentId?: mongoose.Types.ObjectId | null | undefined;
44
+ workflowId?: mongoose.Types.ObjectId | null | undefined;
45
+ settings?: any;
46
+ statistics?: {
47
+ totalProcessed: number;
48
+ totalFailed: number;
49
+ averageProcessingTime: number;
50
+ lastProcessedAt?: NativeDate | null | undefined;
51
+ } | null | undefined;
52
+ }, {}, {}, {}, mongoose.Document<unknown, {}, {
53
+ createdAt: NativeDate;
54
+ updatedAt: NativeDate;
55
+ } & {
56
+ isActive: boolean;
57
+ name: string;
58
+ retryAttempts: number;
59
+ retryDelay: number;
60
+ priority: number;
61
+ maxConcurrency: number;
62
+ processingTimeout: number;
63
+ assignedUsers: mongoose.Types.ObjectId[];
64
+ description?: string | null | undefined;
65
+ departmentId?: mongoose.Types.ObjectId | null | undefined;
66
+ workflowId?: mongoose.Types.ObjectId | null | undefined;
67
+ settings?: any;
68
+ statistics?: {
69
+ totalProcessed: number;
70
+ totalFailed: number;
71
+ averageProcessingTime: number;
72
+ lastProcessedAt?: NativeDate | null | undefined;
73
+ } | null | undefined;
74
+ }, {}> & {
75
+ createdAt: NativeDate;
76
+ updatedAt: NativeDate;
77
+ } & {
78
+ isActive: boolean;
79
+ name: string;
80
+ retryAttempts: number;
81
+ retryDelay: number;
82
+ priority: number;
83
+ maxConcurrency: number;
84
+ processingTimeout: number;
85
+ assignedUsers: mongoose.Types.ObjectId[];
86
+ description?: string | null | undefined;
87
+ departmentId?: mongoose.Types.ObjectId | null | undefined;
88
+ workflowId?: mongoose.Types.ObjectId | null | undefined;
89
+ settings?: any;
90
+ statistics?: {
91
+ totalProcessed: number;
92
+ totalFailed: number;
93
+ averageProcessingTime: number;
94
+ lastProcessedAt?: NativeDate | null | undefined;
95
+ } | null | undefined;
96
+ } & {
97
+ _id: mongoose.Types.ObjectId;
98
+ } & {
99
+ __v: number;
100
+ }, mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
101
+ timestamps: true;
102
+ toJSON: {
103
+ virtuals: true;
104
+ };
105
+ toObject: {
106
+ virtuals: true;
107
+ };
108
+ }, {
109
+ createdAt: NativeDate;
110
+ updatedAt: NativeDate;
111
+ } & {
112
+ isActive: boolean;
113
+ name: string;
114
+ retryAttempts: number;
115
+ retryDelay: number;
116
+ priority: number;
117
+ maxConcurrency: number;
118
+ processingTimeout: number;
119
+ assignedUsers: mongoose.Types.ObjectId[];
120
+ description?: string | null | undefined;
121
+ departmentId?: mongoose.Types.ObjectId | null | undefined;
122
+ workflowId?: mongoose.Types.ObjectId | null | undefined;
123
+ settings?: any;
124
+ statistics?: {
125
+ totalProcessed: number;
126
+ totalFailed: number;
127
+ averageProcessingTime: number;
128
+ lastProcessedAt?: NativeDate | null | undefined;
129
+ } | null | undefined;
130
+ }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
131
+ createdAt: NativeDate;
132
+ updatedAt: NativeDate;
133
+ } & {
134
+ isActive: boolean;
135
+ name: string;
136
+ retryAttempts: number;
137
+ retryDelay: number;
138
+ priority: number;
139
+ maxConcurrency: number;
140
+ processingTimeout: number;
141
+ assignedUsers: mongoose.Types.ObjectId[];
142
+ description?: string | null | undefined;
143
+ departmentId?: mongoose.Types.ObjectId | null | undefined;
144
+ workflowId?: mongoose.Types.ObjectId | null | undefined;
145
+ settings?: any;
146
+ statistics?: {
147
+ totalProcessed: number;
148
+ totalFailed: number;
149
+ averageProcessingTime: number;
150
+ lastProcessedAt?: NativeDate | null | undefined;
151
+ } | null | undefined;
152
+ }>, {}> & mongoose.FlatRecord<{
153
+ createdAt: NativeDate;
154
+ updatedAt: NativeDate;
155
+ } & {
156
+ isActive: boolean;
157
+ name: string;
158
+ retryAttempts: number;
159
+ retryDelay: number;
160
+ priority: number;
161
+ maxConcurrency: number;
162
+ processingTimeout: number;
163
+ assignedUsers: mongoose.Types.ObjectId[];
164
+ description?: string | null | undefined;
165
+ departmentId?: mongoose.Types.ObjectId | null | undefined;
166
+ workflowId?: mongoose.Types.ObjectId | null | undefined;
167
+ settings?: any;
168
+ statistics?: {
169
+ totalProcessed: number;
170
+ totalFailed: number;
171
+ averageProcessingTime: number;
172
+ lastProcessedAt?: NativeDate | null | undefined;
173
+ } | null | undefined;
174
+ }> & {
175
+ _id: mongoose.Types.ObjectId;
176
+ } & {
177
+ __v: number;
178
+ }>>;
179
+ export default QueueModel;
180
+ //# sourceMappingURL=queue.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue.model.d.ts","sourceRoot":"","sources":["../../shared/queue.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AA6ChC,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAuC,CAAC;AACxD,eAAe,UAAU,CAAC"}
@@ -0,0 +1,42 @@
1
+ import mongoose from "mongoose";
2
+ import { applyAuditMiddleware } from "@dynamatix/cat-shared/middlewares";
3
+ import { applyWorkflowPlugin } from "./workflow.plugin";
4
+ const queueSchema = new mongoose.Schema({
5
+ name: { type: String, required: true, unique: true },
6
+ description: { type: String, required: false },
7
+ isActive: { type: Boolean, default: true },
8
+ priority: { type: Number, default: 0 },
9
+ maxConcurrency: { type: Number, default: 1 },
10
+ retryAttempts: { type: Number, default: 3 },
11
+ retryDelay: { type: Number, default: 5000 }, // milliseconds
12
+ processingTimeout: { type: Number, default: 300000 }, // 5 minutes in milliseconds
13
+ assignedUsers: [{ type: mongoose.Schema.Types.ObjectId, ref: "User" }],
14
+ departmentId: { type: mongoose.Schema.Types.ObjectId, ref: "Department", required: false },
15
+ workflowId: { type: mongoose.Schema.Types.ObjectId, ref: "Workflow", required: false },
16
+ settings: { type: mongoose.Schema.Types.Mixed, required: false },
17
+ statistics: {
18
+ totalProcessed: { type: Number, default: 0 },
19
+ totalFailed: { type: Number, default: 0 },
20
+ averageProcessingTime: { type: Number, default: 0 },
21
+ lastProcessedAt: { type: Date, required: false }
22
+ }
23
+ }, {
24
+ timestamps: true,
25
+ toJSON: { virtuals: true },
26
+ toObject: { virtuals: true }
27
+ });
28
+ // Virtual for current queue size (would need to be populated from related collections)
29
+ queueSchema.virtual('currentSize').get(function () {
30
+ // This would typically be calculated by counting related queue items
31
+ return 0;
32
+ });
33
+ applyAuditMiddleware(queueSchema, "Queue");
34
+ applyWorkflowPlugin(queueSchema, 'queue');
35
+ // Add indexes to match database
36
+ queueSchema.index({ name: 1 }, { unique: true }); // Unique queue name
37
+ queueSchema.index({ isActive: 1 }); // Filter by active status
38
+ queueSchema.index({ priority: -1 }); // Sort by priority (highest first)
39
+ queueSchema.index({ departmentId: 1 }); // Filter by department
40
+ queueSchema.index({ isActive: 1, priority: -1 }); // Compound: active + priority
41
+ const QueueModel = mongoose.model("Queue", queueSchema);
42
+ export default QueueModel;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamatix/gb-schemas",
3
- "version": "2.3.321",
3
+ "version": "2.3.322",
4
4
  "description": "All the schemas for gatehouse bank back-end",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",