@dynamatix/gb-schemas 2.3.271 → 2.3.272

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.
Files changed (105) hide show
  1. package/README.md +308 -308
  2. package/dist/applicants/applicant-additional-income.model.d.ts.map +1 -1
  3. package/dist/applicants/applicant-additional-income.model.js +3 -0
  4. package/dist/applicants/applicant-commitment-creditCard.model.d.ts.map +1 -1
  5. package/dist/applicants/applicant-commitment-creditCard.model.js +3 -0
  6. package/dist/applicants/applicant-commitment-loan.model.d.ts.map +1 -1
  7. package/dist/applicants/applicant-commitment-loan.model.js +2 -0
  8. package/dist/applicants/applicant-commitment-mortgage.model.d.ts.map +1 -1
  9. package/dist/applicants/applicant-commitment-mortgage.model.js +3 -0
  10. package/dist/applicants/applicant-commitment-residence.model.d.ts.map +1 -1
  11. package/dist/applicants/applicant-commitment-residence.model.js +2 -0
  12. package/dist/applicants/applicant-commitment-secureLoan.model.d.ts.map +1 -1
  13. package/dist/applicants/applicant-commitment-secureLoan.model.js +3 -0
  14. package/dist/applicants/applicant-commitment-unsecuredLoan.model.d.ts.map +1 -1
  15. package/dist/applicants/applicant-commitment-unsecuredLoan.model.js +3 -0
  16. package/dist/applicants/applicant-credit-report.model.js +1 -0
  17. package/dist/applicants/applicant-employment-income.model.d.ts.map +1 -1
  18. package/dist/applicants/applicant-employment-income.model.js +3 -0
  19. package/dist/applicants/applicant-expenditure.model.d.ts.map +1 -1
  20. package/dist/applicants/applicant-expenditure.model.js +3 -0
  21. package/dist/applicants/applicant-income-settings.model.d.ts.map +1 -1
  22. package/dist/applicants/applicant-income-settings.model.js +1 -0
  23. package/dist/applicants/applicant-income-summary.model.d.ts.map +1 -1
  24. package/dist/applicants/applicant-income-summary.model.js +2 -0
  25. package/dist/applicants/applicant-pension-income.model.d.ts.map +1 -1
  26. package/dist/applicants/applicant-pension-income.model.js +2 -0
  27. package/dist/applicants/applicant-property-income.model.d.ts.map +1 -1
  28. package/dist/applicants/applicant-property-income.model.js +1 -0
  29. package/dist/applicants/applicant-self-employed-income.model.d.ts.map +1 -1
  30. package/dist/applicants/applicant-self-employed-income.model.js +1 -0
  31. package/dist/applicants/applicant-self-employment.model.d.ts.map +1 -1
  32. package/dist/applicants/applicant-self-employment.model.js +2 -0
  33. package/dist/applicants/applicant-sole-trader-income.model.d.ts.map +1 -1
  34. package/dist/applicants/applicant-sole-trader-income.model.js +1 -0
  35. package/dist/applicants/applicant-uk-tax-credits.model.d.ts.map +1 -1
  36. package/dist/applicants/applicant-uk-tax-credits.model.js +2 -0
  37. package/dist/applicants/applicant-welcome-call.model.d.ts.map +1 -1
  38. package/dist/applicants/applicant-welcome-call.model.js +4 -171
  39. package/dist/applicants/applicant.model.d.ts.map +1 -1
  40. package/dist/applicants/applicant.model.js +14 -0
  41. package/dist/applications/application-direct-debit.model.js +2 -0
  42. package/dist/applications/application-euc.model.d.ts.map +1 -1
  43. package/dist/applications/application-euc.model.js +2 -0
  44. package/dist/applications/application-mortgage.model.js +2 -0
  45. package/dist/applications/application-note.model.d.ts.map +1 -1
  46. package/dist/applications/application-note.model.js +18 -0
  47. package/dist/applications/application-product.model.d.ts.map +1 -1
  48. package/dist/applications/application-product.model.js +3 -0
  49. package/dist/applications/application.model.d.ts.map +1 -1
  50. package/dist/applications/application.model.js +11 -0
  51. package/dist/applications/applications-task.model.d.ts.map +1 -1
  52. package/dist/applications/applications-task.model.js +3 -0
  53. package/dist/product-catalogues/product-catalogue.model.d.ts.map +1 -1
  54. package/dist/product-catalogues/product-catalogue.model.js +1 -0
  55. package/dist/product-catalogues/product-variant.model.d.ts.map +1 -1
  56. package/dist/product-catalogues/product-variant.model.js +1 -0
  57. package/dist/properties/security.model.d.ts.map +1 -1
  58. package/dist/properties/security.model.js +4 -0
  59. package/dist/shared/api-log.model.d.ts +6 -0
  60. package/dist/shared/api-log.model.d.ts.map +1 -1
  61. package/dist/shared/api-log.model.js +4 -0
  62. package/dist/shared/apprivo-sync-journey.model.d.ts.map +1 -1
  63. package/dist/shared/apprivo-sync-journey.model.js +2 -0
  64. package/dist/shared/audit-log.model.d.ts +180 -0
  65. package/dist/shared/audit-log.model.d.ts.map +1 -0
  66. package/dist/shared/audit-log.model.js +43 -0
  67. package/dist/shared/checklist.model.d.ts.map +1 -1
  68. package/dist/shared/checklist.model.js +5 -0
  69. package/dist/shared/document.model.d.ts +180 -0
  70. package/dist/shared/document.model.d.ts.map +1 -0
  71. package/dist/shared/document.model.js +40 -0
  72. package/dist/shared/lookup-group.model.d.ts.map +1 -1
  73. package/dist/shared/lookup-group.model.js +3 -0
  74. package/dist/shared/lookup.model.d.ts.map +1 -1
  75. package/dist/shared/lookup.model.js +6 -0
  76. package/dist/shared/queue.model.d.ts +180 -0
  77. package/dist/shared/queue.model.d.ts.map +1 -0
  78. package/dist/shared/queue.model.js +42 -0
  79. package/dist/shared/webhook-event.model.d.ts.map +1 -1
  80. package/dist/shared/webhook-event.model.js +4 -0
  81. package/dist/users/auth-log.model.d.ts.map +1 -1
  82. package/dist/users/auth-log.model.js +3 -0
  83. package/dist/users/permission.model.d.ts.map +1 -1
  84. package/dist/users/permission.model.js +2 -0
  85. package/dist/users/role-group.model.d.ts.map +1 -1
  86. package/dist/users/role-group.model.js +3 -0
  87. package/dist/users/role.model.d.ts.map +1 -1
  88. package/dist/users/role.model.js +3 -0
  89. package/dist/users/user.model.d.ts.map +1 -1
  90. package/dist/users/user.model.js +10 -0
  91. package/package.json +86 -86
  92. package/dist/applicants/applicant-income-source.model.d.ts +0 -26
  93. package/dist/applicants/applicant-income-source.model.d.ts.map +0 -1
  94. package/dist/applicants/applicant-income.model.d.ts +0 -160
  95. package/dist/applicants/applicant-income.model.d.ts.map +0 -1
  96. package/dist/applicants/applicant-other-income.model.d.ts +0 -85
  97. package/dist/applicants/applicant-other-income.model.d.ts.map +0 -1
  98. package/dist/applications/application-document.model.d.ts +0 -158
  99. package/dist/applications/application-document.model.d.ts.map +0 -1
  100. package/dist/applications/document.model.d.ts +0 -158
  101. package/dist/applications/document.model.d.ts.map +0 -1
  102. package/dist/applications/productfeatures.model.d.ts +0 -368
  103. package/dist/applications/productfeatures.model.d.ts.map +0 -1
  104. package/dist/shared/document-type-model.d.ts +0 -48
  105. package/dist/shared/document-type-model.d.ts.map +0 -1
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"webhook-event.model.d.ts","sourceRoot":"","sources":["../../shared/webhook-event.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAoB,MAAM,UAAU,CAAC;AAC5C,OAAO,aAAa,MAAM,sBAAsB,CAAC;;;;;;AAuDjD,wBAAiF"}
1
+ {"version":3,"file":"webhook-event.model.d.ts","sourceRoot":"","sources":["../../shared/webhook-event.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAoB,MAAM,UAAU,CAAC;AAC5C,OAAO,aAAa,MAAM,sBAAsB,CAAC;;;;;;AA4DjD,wBAAiF"}
@@ -50,4 +50,8 @@ const webhookEventSchema = new Schema({
50
50
  // Index for efficient querying
51
51
  webhookEventSchema.index({ createdAt: -1 });
52
52
  webhookEventSchema.index({ status: 1, retryCount: 1 });
53
+ // Recommended compound indexes for webhook event queries
54
+ webhookEventSchema.index({ status: 1, createdAt: 1 }); // For findByStatus() with sort
55
+ webhookEventSchema.index({ status: 1, retryCount: 1, createdAt: 1 }); // Enhanced pending events query
56
+ webhookEventSchema.index({ applicationId: 1, createdAt: -1 }); // For findByApplicationId() with sort
53
57
  export default mongoose.model('WebhookEvent', webhookEventSchema);
@@ -1 +1 @@
1
- {"version":3,"file":"auth-log.model.d.ts","sourceRoot":"","sources":["../../users/auth-log.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAqBhC,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA2C,CAAC;AAE9D,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"auth-log.model.d.ts","sourceRoot":"","sources":["../../users/auth-log.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAyBhC,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA2C,CAAC;AAE9D,eAAe,YAAY,CAAC"}
@@ -17,5 +17,8 @@ const AuthLogSchema = new mongoose.Schema({
17
17
  enum: ["LOGIN", "LOGOUT", "PASSWORD_RESET"]
18
18
  }
19
19
  });
20
+ // Indexes for query optimization
21
+ AuthLogSchema.index({ userEmail: 1, loggedInTimestamp: -1 }); // Compound index for getByEmail queries with timestamp sort
22
+ AuthLogSchema.index({ loggedInTimestamp: -1 }); // Index for getAll queries sorted by timestamp descending
20
23
  const AuthLogModel = mongoose.model("AuthLog", AuthLogSchema);
21
24
  export default AuthLogModel;
@@ -1 +1 @@
1
- {"version":3,"file":"permission.model.d.ts","sourceRoot":"","sources":["../../users/permission.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAWhC,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAiD,CAAC;AAEvE,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"permission.model.d.ts","sourceRoot":"","sources":["../../users/permission.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAchC,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAiD,CAAC;AAEvE,eAAe,eAAe,CAAC"}
@@ -6,5 +6,7 @@ const permissionSchema = new mongoose.Schema({
6
6
  }, {
7
7
  timestamps: true
8
8
  });
9
+ // Add recommended indexes for query optimization
10
+ permissionSchema.index({ name: 1 }); // Filter by permission name
9
11
  const PermissionModel = mongoose.model('Permission', permissionSchema);
10
12
  export default PermissionModel;
@@ -1 +1 @@
1
- {"version":3,"file":"role-group.model.d.ts","sourceRoot":"","sources":["../../users/role-group.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAehC,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA+C,CAAC;AACpE,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"role-group.model.d.ts","sourceRoot":"","sources":["../../users/role-group.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAmBhC,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA+C,CAAC;AACpE,eAAe,cAAc,CAAC"}
@@ -10,5 +10,8 @@ const RoleGroupSchema = new mongoose.Schema({
10
10
  }, {
11
11
  timestamps: true
12
12
  });
13
+ // Indexes for query optimization
14
+ RoleGroupSchema.index({ name: 1 });
15
+ RoleGroupSchema.index({ roles: 1 });
13
16
  const RoleGroupModel = mongoose.model('RoleGroup', RoleGroupSchema);
14
17
  export default RoleGroupModel;
@@ -1 +1 @@
1
- {"version":3,"file":"role.model.d.ts","sourceRoot":"","sources":["../../users/role.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAchC,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAqC,CAAC;AAErD,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"role.model.d.ts","sourceRoot":"","sources":["../../users/role.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAkBhC,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAqC,CAAC;AAErD,eAAe,SAAS,CAAC"}
@@ -9,5 +9,8 @@ const RoleSchema = new mongoose.Schema({
9
9
  }, {
10
10
  timestamps: true
11
11
  });
12
+ // Add recommended indexes for query optimization
13
+ RoleSchema.index({ name: 1 }); // Filter by role name
14
+ RoleSchema.index({ permissions: 1 }); // Filter by permissions
12
15
  const RoleModel = mongoose.model('Role', RoleSchema);
13
16
  export default RoleModel;
@@ -1 +1 @@
1
- {"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../users/user.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAgChC,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAqC,CAAC;AAErD,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"user.model.d.ts","sourceRoot":"","sources":["../../users/user.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AA6ChC,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAqC,CAAC;AAErD,eAAe,SAAS,CAAC"}
@@ -26,5 +26,15 @@ const userSchema = new mongoose.Schema({
26
26
  }, {
27
27
  timestamps: true
28
28
  });
29
+ // Database indexes for performance optimization
30
+ // Single field indexes
31
+ userSchema.index({ accountId: 1 }, { unique: true });
32
+ userSchema.index({ email: 1 });
33
+ userSchema.index({ token: 1 });
34
+ userSchema.index({ groups: 1 }); // For population
35
+ // Text index for name search
36
+ userSchema.index({ fullName: "text" });
37
+ // Regular index for prefix matching (alternative to text search)
38
+ userSchema.index({ fullName: 1 });
29
39
  const UserModel = mongoose.model('User', userSchema);
30
40
  export default UserModel;
package/package.json CHANGED
@@ -1,86 +1,86 @@
1
- {
2
- "name": "@dynamatix/gb-schemas",
3
- "version": "2.3.271",
4
- "description": "All the schemas for gatehouse bank back-end",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "type": "module",
8
- "scripts": {
9
- "build": "tsc",
10
- "test": "echo \"Error: no test specified\" && exit 1",
11
- "test:workflow": "npm run build && node test-workflow.js",
12
- "test:workflow:env": "npm run build && WORKFLOW_API_KEY=test-key WORKFLOW_API_URL=http://localhost:3000/api/workflows node test-workflow-with-env.js",
13
- "example:app": "npm run build && node example-app-usage.js",
14
- "test:workflow:triggers": "npm run build && node test-workflow-with-triggers.js",
15
- "test:workflow:direct": "npm run build && node test-direct-middleware.js",
16
- "patch": "tsc && npm version patch && npm publish --access public && exit 0",
17
- "generate-docs": "NODE_OPTIONS='--loader ts-node/esm' ts-node schema-docs/docs.seeder.ts",
18
- "example:income": "NODE_OPTIONS='--loader ts-node/esm' ts-node examples/add-applicant-income.ts",
19
- "migrate:applicant-income": "node migrate-applicant-income.js",
20
- "migrate:self-employed-id": "node migrate-self-employed-id.js",
21
- "check:applicants-employment": "node check-applicants-without-employment.js",
22
- "delete:applications-by-type": "node delete-applications-by-type.js",
23
- "find:applications-many-audits": "node find-applications-with-many-audits.js",
24
- "update:apiconfigs-paths": "node scripts/update-apiconfigs-paths.js",
25
- "seed:property-metadata": "node scripts/seed-property-metadata.js"
26
- },
27
- "repository": {
28
- "type": "git",
29
- "url": "git+https://github.com/DynamatixAnalyticsPvtLtd/gb-schemas.git"
30
- },
31
- "author": "Dynamatix",
32
- "license": "ISC",
33
- "bugs": {
34
- "url": "https://github.com/DynamatixAnalyticsPvtLtd/gb-schemas/issues"
35
- },
36
- "homepage": "https://github.com/DynamatixAnalyticsPvtLtd/gb-schemas#readme",
37
- "dependencies": {
38
- "@dynamatix/cat-shared": "^0.0.126",
39
- "dotenv": "^16.4.5",
40
- "mongodb": "^6.14.2",
41
- "mongoose": "^8.9.5"
42
- },
43
- "files": [
44
- "dist"
45
- ],
46
- "exports": {
47
- ".": {
48
- "import": "./dist/index.js",
49
- "types": "./dist/index.d.ts"
50
- },
51
- "./applications": {
52
- "import": "./dist/applications/index.js",
53
- "types": "./dist/applications/index.d.ts"
54
- },
55
- "./applicants": {
56
- "import": "./dist/applicants/index.js",
57
- "types": "./dist/applicants/index.d.ts"
58
- },
59
- "./shared": {
60
- "import": "./dist/shared/index.js",
61
- "types": "./dist/shared/index.d.ts"
62
- },
63
- "./properties": {
64
- "import": "./dist/properties/index.js",
65
- "types": "./dist/properties/index.d.ts"
66
- },
67
- "./users": {
68
- "import": "./dist/users/index.js",
69
- "types": "./dist/users/index.d.ts"
70
- },
71
- "./product-catalogues": {
72
- "import": "./dist/product-catalogues/index.js",
73
- "types": "./dist/product-catalogues/index.d.ts"
74
- },
75
- "./underwriter": {
76
- "import": "./dist/underwriter/index.js",
77
- "types": "./dist/underwriter/index.d.ts"
78
- }
79
- },
80
- "devDependencies": {
81
- "@types/mongoose": "^5.11.96",
82
- "@types/node": "^22.14.0",
83
- "ts-node": "^10.9.2",
84
- "typescript": "^5.3.3"
85
- }
86
- }
1
+ {
2
+ "name": "@dynamatix/gb-schemas",
3
+ "version": "2.3.272",
4
+ "description": "All the schemas for gatehouse bank back-end",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "type": "module",
8
+ "scripts": {
9
+ "build": "tsc",
10
+ "test": "echo \"Error: no test specified\" && exit 1",
11
+ "test:workflow": "npm run build && node test-workflow.js",
12
+ "test:workflow:env": "npm run build && WORKFLOW_API_KEY=test-key WORKFLOW_API_URL=http://localhost:3000/api/workflows node test-workflow-with-env.js",
13
+ "example:app": "npm run build && node example-app-usage.js",
14
+ "test:workflow:triggers": "npm run build && node test-workflow-with-triggers.js",
15
+ "test:workflow:direct": "npm run build && node test-direct-middleware.js",
16
+ "patch": "tsc && npm version patch && npm publish --access public && exit 0",
17
+ "generate-docs": "NODE_OPTIONS='--loader ts-node/esm' ts-node schema-docs/docs.seeder.ts",
18
+ "example:income": "NODE_OPTIONS='--loader ts-node/esm' ts-node examples/add-applicant-income.ts",
19
+ "migrate:applicant-income": "node migrate-applicant-income.js",
20
+ "migrate:self-employed-id": "node migrate-self-employed-id.js",
21
+ "check:applicants-employment": "node check-applicants-without-employment.js",
22
+ "delete:applications-by-type": "node delete-applications-by-type.js",
23
+ "find:applications-many-audits": "node find-applications-with-many-audits.js",
24
+ "update:apiconfigs-paths": "node scripts/update-apiconfigs-paths.js",
25
+ "seed:property-metadata": "node scripts/seed-property-metadata.js"
26
+ },
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+https://github.com/DynamatixAnalyticsPvtLtd/gb-schemas.git"
30
+ },
31
+ "author": "Dynamatix",
32
+ "license": "ISC",
33
+ "bugs": {
34
+ "url": "https://github.com/DynamatixAnalyticsPvtLtd/gb-schemas/issues"
35
+ },
36
+ "homepage": "https://github.com/DynamatixAnalyticsPvtLtd/gb-schemas#readme",
37
+ "dependencies": {
38
+ "@dynamatix/cat-shared": "^0.0.126",
39
+ "dotenv": "^16.4.5",
40
+ "mongodb": "^6.14.2",
41
+ "mongoose": "^8.9.5"
42
+ },
43
+ "files": [
44
+ "dist"
45
+ ],
46
+ "exports": {
47
+ ".": {
48
+ "import": "./dist/index.js",
49
+ "types": "./dist/index.d.ts"
50
+ },
51
+ "./applications": {
52
+ "import": "./dist/applications/index.js",
53
+ "types": "./dist/applications/index.d.ts"
54
+ },
55
+ "./applicants": {
56
+ "import": "./dist/applicants/index.js",
57
+ "types": "./dist/applicants/index.d.ts"
58
+ },
59
+ "./shared": {
60
+ "import": "./dist/shared/index.js",
61
+ "types": "./dist/shared/index.d.ts"
62
+ },
63
+ "./properties": {
64
+ "import": "./dist/properties/index.js",
65
+ "types": "./dist/properties/index.d.ts"
66
+ },
67
+ "./users": {
68
+ "import": "./dist/users/index.js",
69
+ "types": "./dist/users/index.d.ts"
70
+ },
71
+ "./product-catalogues": {
72
+ "import": "./dist/product-catalogues/index.js",
73
+ "types": "./dist/product-catalogues/index.d.ts"
74
+ },
75
+ "./underwriter": {
76
+ "import": "./dist/underwriter/index.js",
77
+ "types": "./dist/underwriter/index.d.ts"
78
+ }
79
+ },
80
+ "devDependencies": {
81
+ "@types/mongoose": "^5.11.96",
82
+ "@types/node": "^22.14.0",
83
+ "ts-node": "^10.9.2",
84
+ "typescript": "^5.3.3"
85
+ }
86
+ }
@@ -1,26 +0,0 @@
1
- import mongoose from "mongoose";
2
- declare const applicantIncomeSourceSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, {
3
- employmentStatusLid: mongoose.Types.ObjectId;
4
- incomeFromEmployment?: string | null | undefined;
5
- incomeFromPension?: string | null | undefined;
6
- incomeFromProperty?: string | null | undefined;
7
- incomeFromSavings?: string | null | undefined;
8
- }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
9
- employmentStatusLid: mongoose.Types.ObjectId;
10
- incomeFromEmployment?: string | null | undefined;
11
- incomeFromPension?: string | null | undefined;
12
- incomeFromProperty?: string | null | undefined;
13
- incomeFromSavings?: string | null | undefined;
14
- }>> & mongoose.FlatRecord<{
15
- employmentStatusLid: mongoose.Types.ObjectId;
16
- incomeFromEmployment?: string | null | undefined;
17
- incomeFromPension?: string | null | undefined;
18
- incomeFromProperty?: string | null | undefined;
19
- incomeFromSavings?: string | null | undefined;
20
- }> & {
21
- _id: mongoose.Types.ObjectId;
22
- } & {
23
- __v: number;
24
- }>;
25
- export default applicantIncomeSourceSchema;
26
- //# sourceMappingURL=applicant-income-source.model.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"applicant-income-source.model.d.ts","sourceRoot":"","sources":["../../applicants/applicant-income-source.model.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,QAAA,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;EAM/B,CAAC;AAEH,eAAe,2BAA2B,CAAC"}