@dynamatix/gb-schemas 2.3.341 → 2.3.342

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 (43) hide show
  1. package/README.md +308 -308
  2. package/dist/applicants/applicant-welcome-call.model.js +9 -9
  3. package/dist/applications/application-offer.model.d.ts +80 -8
  4. package/dist/applications/application-offer.model.d.ts.map +1 -1
  5. package/dist/applications/application-offer.model.js +39 -4
  6. package/dist/applications/application-offer.type.d.ts +46 -0
  7. package/dist/applications/application-offer.type.d.ts.map +1 -0
  8. package/dist/applications/application-offer.type.js +1 -0
  9. package/dist/applications/application.model.d.ts +6 -0
  10. package/dist/applications/application.model.d.ts.map +1 -1
  11. package/dist/applications/application.model.js +1 -0
  12. package/dist/applications/index.d.ts +3 -0
  13. package/dist/applications/index.d.ts.map +1 -1
  14. package/dist/applications/index.js +1 -0
  15. package/dist/applications/solicitor.model.d.ts.map +1 -1
  16. package/dist/applications/solicitor.model.js +3 -0
  17. package/dist/applications/solicitor.type.d.ts +56 -0
  18. package/dist/applications/solicitor.type.d.ts.map +1 -0
  19. package/dist/applications/solicitor.type.js +1 -0
  20. package/dist/shared/audit-log.model.d.ts +180 -0
  21. package/dist/shared/audit-log.model.d.ts.map +1 -0
  22. package/dist/shared/audit-log.model.js +43 -0
  23. package/dist/shared/document.model.d.ts +180 -0
  24. package/dist/shared/document.model.d.ts.map +1 -0
  25. package/dist/shared/document.model.js +40 -0
  26. package/dist/shared/queue.model.d.ts +180 -0
  27. package/dist/shared/queue.model.d.ts.map +1 -0
  28. package/dist/shared/queue.model.js +42 -0
  29. package/package.json +87 -87
  30. package/dist/applicants/applicant-income-source.model.d.ts +0 -26
  31. package/dist/applicants/applicant-income-source.model.d.ts.map +0 -1
  32. package/dist/applicants/applicant-income.model.d.ts +0 -160
  33. package/dist/applicants/applicant-income.model.d.ts.map +0 -1
  34. package/dist/applicants/applicant-other-income.model.d.ts +0 -85
  35. package/dist/applicants/applicant-other-income.model.d.ts.map +0 -1
  36. package/dist/applications/application-document.model.d.ts +0 -158
  37. package/dist/applications/application-document.model.d.ts.map +0 -1
  38. package/dist/applications/document.model.d.ts +0 -158
  39. package/dist/applications/document.model.d.ts.map +0 -1
  40. package/dist/applications/productfeatures.model.d.ts +0 -368
  41. package/dist/applications/productfeatures.model.d.ts.map +0 -1
  42. package/dist/shared/document-type-model.d.ts +0 -48
  43. package/dist/shared/document-type-model.d.ts.map +0 -1
@@ -27,26 +27,98 @@
27
27
  /// <reference types="mongoose/types/inferschematype" />
28
28
  /// <reference types="mongoose/types/inferrawdoctype" />
29
29
  import mongoose from "mongoose";
30
- declare const OfferModel: mongoose.Model<{
31
- date?: string | null | undefined;
30
+ declare const ApplicationOfferModel: mongoose.Model<{
31
+ applicationId: mongoose.Types.ObjectId;
32
+ offerStatusLid: mongoose.Types.ObjectId;
33
+ bankSolicitorLid: mongoose.Types.ObjectId;
34
+ offerConditionLids: mongoose.Types.ObjectId[];
35
+ customOfferConditions: string[];
36
+ isOfferConditionConfirmed: boolean;
37
+ offerConditionConfirmedAt: NativeDate;
38
+ offerGeneratedAt: NativeDate;
39
+ isOfferGenerated: boolean;
40
+ isOfferReviewed: boolean;
41
+ isOfferReviewConfirmed: boolean;
42
+ isReviewMandateConfirmed: boolean;
43
+ isOfferIssuedConfirmed: boolean;
32
44
  }, {}, {}, {}, mongoose.Document<unknown, {}, {
33
- date?: string | null | undefined;
45
+ applicationId: mongoose.Types.ObjectId;
46
+ offerStatusLid: mongoose.Types.ObjectId;
47
+ bankSolicitorLid: mongoose.Types.ObjectId;
48
+ offerConditionLids: mongoose.Types.ObjectId[];
49
+ customOfferConditions: string[];
50
+ isOfferConditionConfirmed: boolean;
51
+ offerConditionConfirmedAt: NativeDate;
52
+ offerGeneratedAt: NativeDate;
53
+ isOfferGenerated: boolean;
54
+ isOfferReviewed: boolean;
55
+ isOfferReviewConfirmed: boolean;
56
+ isReviewMandateConfirmed: boolean;
57
+ isOfferIssuedConfirmed: boolean;
34
58
  }, {}> & {
35
- date?: string | null | undefined;
59
+ applicationId: mongoose.Types.ObjectId;
60
+ offerStatusLid: mongoose.Types.ObjectId;
61
+ bankSolicitorLid: mongoose.Types.ObjectId;
62
+ offerConditionLids: mongoose.Types.ObjectId[];
63
+ customOfferConditions: string[];
64
+ isOfferConditionConfirmed: boolean;
65
+ offerConditionConfirmedAt: NativeDate;
66
+ offerGeneratedAt: NativeDate;
67
+ isOfferGenerated: boolean;
68
+ isOfferReviewed: boolean;
69
+ isOfferReviewConfirmed: boolean;
70
+ isReviewMandateConfirmed: boolean;
71
+ isOfferIssuedConfirmed: boolean;
36
72
  } & {
37
73
  _id: mongoose.Types.ObjectId;
38
74
  } & {
39
75
  __v: number;
40
76
  }, mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, {
41
- date?: string | null | undefined;
77
+ applicationId: mongoose.Types.ObjectId;
78
+ offerStatusLid: mongoose.Types.ObjectId;
79
+ bankSolicitorLid: mongoose.Types.ObjectId;
80
+ offerConditionLids: mongoose.Types.ObjectId[];
81
+ customOfferConditions: string[];
82
+ isOfferConditionConfirmed: boolean;
83
+ offerConditionConfirmedAt: NativeDate;
84
+ offerGeneratedAt: NativeDate;
85
+ isOfferGenerated: boolean;
86
+ isOfferReviewed: boolean;
87
+ isOfferReviewConfirmed: boolean;
88
+ isReviewMandateConfirmed: boolean;
89
+ isOfferIssuedConfirmed: boolean;
42
90
  }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
43
- date?: string | null | undefined;
91
+ applicationId: mongoose.Types.ObjectId;
92
+ offerStatusLid: mongoose.Types.ObjectId;
93
+ bankSolicitorLid: mongoose.Types.ObjectId;
94
+ offerConditionLids: mongoose.Types.ObjectId[];
95
+ customOfferConditions: string[];
96
+ isOfferConditionConfirmed: boolean;
97
+ offerConditionConfirmedAt: NativeDate;
98
+ offerGeneratedAt: NativeDate;
99
+ isOfferGenerated: boolean;
100
+ isOfferReviewed: boolean;
101
+ isOfferReviewConfirmed: boolean;
102
+ isReviewMandateConfirmed: boolean;
103
+ isOfferIssuedConfirmed: boolean;
44
104
  }>, {}> & mongoose.FlatRecord<{
45
- date?: string | null | undefined;
105
+ applicationId: mongoose.Types.ObjectId;
106
+ offerStatusLid: mongoose.Types.ObjectId;
107
+ bankSolicitorLid: mongoose.Types.ObjectId;
108
+ offerConditionLids: mongoose.Types.ObjectId[];
109
+ customOfferConditions: string[];
110
+ isOfferConditionConfirmed: boolean;
111
+ offerConditionConfirmedAt: NativeDate;
112
+ offerGeneratedAt: NativeDate;
113
+ isOfferGenerated: boolean;
114
+ isOfferReviewed: boolean;
115
+ isOfferReviewConfirmed: boolean;
116
+ isReviewMandateConfirmed: boolean;
117
+ isOfferIssuedConfirmed: boolean;
46
118
  }> & {
47
119
  _id: mongoose.Types.ObjectId;
48
120
  } & {
49
121
  __v: number;
50
122
  }>>;
51
- export default OfferModel;
123
+ export default ApplicationOfferModel;
52
124
  //# sourceMappingURL=application-offer.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"application-offer.model.d.ts","sourceRoot":"","sources":["../../applications/application-offer.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAehC,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;GAAuC,CAAC;AACxD,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"application-offer.model.d.ts","sourceRoot":"","sources":["../../applications/application-offer.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AA+ChC,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAkD,CAAC;AAC9E,eAAe,qBAAqB,CAAC"}
@@ -1,9 +1,44 @@
1
1
  import mongoose from "mongoose";
2
+ import { applyAuditMiddleware } from "@dynamatix/cat-shared/middlewares";
2
3
  import { applyWorkflowPlugin } from "../shared/workflow.plugin";
3
4
  const offerSchema = new mongoose.Schema({
4
- date: { type: String } // The date associated with the offer
5
+ applicationId: { type: mongoose.Schema.Types.ObjectId, ref: "Application",
6
+ required: true,
7
+ },
8
+ offerStatusLid: { type: mongoose.Schema.Types.ObjectId, ref: "Lookup",
9
+ default: null,
10
+ description: "Object id for lookup group OfferStatus",
11
+ },
12
+ // Bank Solicitor section
13
+ bankSolicitorLid: { type: mongoose.Schema.Types.ObjectId, ref: "lookup",
14
+ default: null,
15
+ description: "Lookup ID for lookup group BankSolicitor",
16
+ },
17
+ // Offer condition section
18
+ offerConditionLids: { type: [mongoose.Schema.Types.ObjectId], ref: "Lookup",
19
+ default: null,
20
+ description: "Array of object ids for lookup group OfferCondition",
21
+ },
22
+ customOfferConditions: { type: [String],
23
+ default: null,
24
+ description: "Array of strings for custom offer conditions",
25
+ },
26
+ isOfferConditionConfirmed: { type: Boolean, default: false },
27
+ offerConditionConfirmedAt: { type: Date, default: null }, // if offer generated date is after condition confirm date, then we can have regeneration of offer
28
+ // Offer generation section
29
+ offerGeneratedAt: { type: Date, default: null },
30
+ isOfferGenerated: { type: Boolean, default: false },
31
+ // Offer review section
32
+ isOfferReviewed: { type: Boolean, default: false },
33
+ isOfferReviewConfirmed: { type: Boolean, default: false },
34
+ // Review mandate section
35
+ isReviewMandateConfirmed: { type: Boolean, default: false },
36
+ // Offer issued section
37
+ isOfferIssuedConfirmed: { type: Boolean, default: false },
5
38
  });
39
+ // Apply audit middleware to the schema
40
+ applyAuditMiddleware(offerSchema, "ApplicationOffer");
6
41
  // Apply workflow plugin to the schema
7
- applyWorkflowPlugin(offerSchema, 'offer');
8
- const OfferModel = mongoose.model("Offer", offerSchema);
9
- export default OfferModel;
42
+ applyWorkflowPlugin(offerSchema, 'applicationoffer');
43
+ const ApplicationOfferModel = mongoose.model("ApplicationOffer", offerSchema);
44
+ export default ApplicationOfferModel;
@@ -0,0 +1,46 @@
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 { Types } from "mongoose";
30
+ import { IBaseType } from "../types/base.types";
31
+ export default interface IApplicationOffer extends IBaseType {
32
+ applicationId: Types.ObjectId;
33
+ offerStatusLid?: Types.ObjectId | null;
34
+ bankSolicitorLid?: Types.ObjectId | null;
35
+ offerConditionLids?: Types.ObjectId[] | null;
36
+ customOfferConditions?: string[] | null;
37
+ isOfferConditionConfirmed: boolean;
38
+ offerConditionConfirmedAt?: Date | null;
39
+ offerGeneratedAt?: Date | null;
40
+ isOfferGenerated: boolean;
41
+ isOfferReviewed: boolean;
42
+ isOfferReviewConfirmed: boolean;
43
+ isReviewMandateConfirmed: boolean;
44
+ isOfferIssuedConfirmed: boolean;
45
+ }
46
+ //# sourceMappingURL=application-offer.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-offer.type.d.ts","sourceRoot":"","sources":["../../applications/application-offer.type.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,OAAO,WAAW,iBAAkB,SAAQ,SAAS;IAC1D,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC9B,cAAc,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvC,gBAAgB,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IAEzC,kBAAkB,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC7C,qBAAqB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxC,yBAAyB,EAAE,OAAO,CAAC;IACnC,yBAAyB,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAExC,gBAAgB,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAE1B,eAAe,EAAE,OAAO,CAAC;IACzB,sBAAsB,EAAE,OAAO,CAAC;IAEhC,wBAAwB,EAAE,OAAO,CAAC;IAElC,sBAAsB,EAAE,OAAO,CAAC;CACjC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -75,6 +75,7 @@ declare const ApplicationModel: mongoose.Model<{
75
75
  directDebitId: mongoose.Types.ObjectId;
76
76
  mortgageId: mongoose.Types.ObjectId;
77
77
  companyId: mongoose.Types.ObjectId;
78
+ offerId: mongoose.Types.ObjectId;
78
79
  newAuditRecordsCount: number;
79
80
  propertyIds: mongoose.Types.ObjectId[];
80
81
  isMandateRequested: boolean;
@@ -161,6 +162,7 @@ declare const ApplicationModel: mongoose.Model<{
161
162
  directDebitId: mongoose.Types.ObjectId;
162
163
  mortgageId: mongoose.Types.ObjectId;
163
164
  companyId: mongoose.Types.ObjectId;
165
+ offerId: mongoose.Types.ObjectId;
164
166
  newAuditRecordsCount: number;
165
167
  propertyIds: mongoose.Types.ObjectId[];
166
168
  isMandateRequested: boolean;
@@ -247,6 +249,7 @@ declare const ApplicationModel: mongoose.Model<{
247
249
  directDebitId: mongoose.Types.ObjectId;
248
250
  mortgageId: mongoose.Types.ObjectId;
249
251
  companyId: mongoose.Types.ObjectId;
252
+ offerId: mongoose.Types.ObjectId;
250
253
  newAuditRecordsCount: number;
251
254
  propertyIds: mongoose.Types.ObjectId[];
252
255
  isMandateRequested: boolean;
@@ -345,6 +348,7 @@ declare const ApplicationModel: mongoose.Model<{
345
348
  directDebitId: mongoose.Types.ObjectId;
346
349
  mortgageId: mongoose.Types.ObjectId;
347
350
  companyId: mongoose.Types.ObjectId;
351
+ offerId: mongoose.Types.ObjectId;
348
352
  newAuditRecordsCount: number;
349
353
  propertyIds: mongoose.Types.ObjectId[];
350
354
  isMandateRequested: boolean;
@@ -431,6 +435,7 @@ declare const ApplicationModel: mongoose.Model<{
431
435
  directDebitId: mongoose.Types.ObjectId;
432
436
  mortgageId: mongoose.Types.ObjectId;
433
437
  companyId: mongoose.Types.ObjectId;
438
+ offerId: mongoose.Types.ObjectId;
434
439
  newAuditRecordsCount: number;
435
440
  propertyIds: mongoose.Types.ObjectId[];
436
441
  isMandateRequested: boolean;
@@ -517,6 +522,7 @@ declare const ApplicationModel: mongoose.Model<{
517
522
  directDebitId: mongoose.Types.ObjectId;
518
523
  mortgageId: mongoose.Types.ObjectId;
519
524
  companyId: mongoose.Types.ObjectId;
525
+ offerId: mongoose.Types.ObjectId;
520
526
  newAuditRecordsCount: number;
521
527
  propertyIds: mongoose.Types.ObjectId[];
522
528
  isMandateRequested: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"application.model.d.ts","sourceRoot":"","sources":["../../applications/application.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAqQhC,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAmD,CAAC;AAC1E,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"application.model.d.ts","sourceRoot":"","sources":["../../applications/application.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAsQhC,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAmD,CAAC;AAC1E,eAAe,gBAAgB,CAAC"}
@@ -59,6 +59,7 @@ const applicationSchema = new mongoose.Schema({
59
59
  creditProfile: creditProfileSchema,
60
60
  mortgageId: { type: mongoose.Schema.Types.ObjectId, ref: "Mortgage", default: null },
61
61
  companyId: { type: mongoose.Schema.Types.ObjectId, ref: "ApplicationCompany", default: null },
62
+ offerId: { type: mongoose.Schema.Types.ObjectId, ref: "ApplicationOffer", default: null },
62
63
  newAuditRecordsCount: { type: Number, default: 0 }, // Ensure it is a Number
63
64
  currentApprivoAuditId: Number,
64
65
  propertyIds: [{ type: mongoose.Schema.Types.ObjectId, ref: "Property" }],
@@ -12,11 +12,14 @@ export { default as ApplicationMortgageType } from './application-mortgage.type'
12
12
  export { default as ApplicationOnboardingModel } from './application-onboarding.model';
13
13
  export { default as ApplicationRationaleModel } from './application-rationale.model';
14
14
  export { default as ApplicationRationaleType } from './application-rationale.type';
15
+ export { default as ApplicationOfferModel } from './application-offer.model';
16
+ export { default as ApplicationOfferType } from './application-offer.type';
15
17
  export { default as ApplicationValuationModel } from './application-valuation.model';
16
18
  export { default as ApplicationValuationType } from './application-valuation.type';
17
19
  export { default as BrokerModel } from './broker.model';
18
20
  export { default as ProductModel } from './application-product.model';
19
21
  export { default as SolicitorModel } from './solicitor.model';
22
+ export { default as SolicitorType } from './solicitor.type';
20
23
  export { default as ApplicationRiskNarrativeModel } from './application-risk-narrative.model';
21
24
  export { default as ApplicationFieldConfigModel } from './application-fieldconfig.model';
22
25
  export { default as MortgageModel } from './application-mortgage.model';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../applications/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,kCAAkC,CAAA;AACzF,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AACjG,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAC,OAAO,IAAI,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACpG,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAClG,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,qCAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../applications/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,kCAAkC,CAAA;AACzF,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AACjG,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAC,OAAO,IAAI,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,oCAAoC,CAAC;AAC/F,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACpG,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAClG,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,qCAAqC,CAAC"}
@@ -8,6 +8,7 @@ export { default as ApplicationDirectDebitModel } from './application-direct-deb
8
8
  export { default as ApplicationMortgageModel } from './application-mortgage.model';
9
9
  export { default as ApplicationOnboardingModel } from './application-onboarding.model';
10
10
  export { default as ApplicationRationaleModel } from './application-rationale.model';
11
+ export { default as ApplicationOfferModel } from './application-offer.model';
11
12
  export { default as ApplicationValuationModel } from './application-valuation.model';
12
13
  export { default as BrokerModel } from './broker.model';
13
14
  export { default as ProductModel } from './application-product.model';
@@ -1 +1 @@
1
- {"version":3,"file":"solicitor.model.d.ts","sourceRoot":"","sources":["../../applications/solicitor.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AA6HhE,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA+C,CAAC;AACpE,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"solicitor.model.d.ts","sourceRoot":"","sources":["../../applications/solicitor.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAGhC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AA8HhE,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAA+C,CAAC;AACpE,eAAe,cAAc,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import mongoose from "mongoose";
2
+ import { applyAuditMiddleware } from "@dynamatix/cat-shared/middlewares";
2
3
  import { applyWorkflowPlugin } from "../shared/workflow.plugin";
3
4
  import { SortCode } from "../value-objects/sort-code";
4
5
  import { AccountNumber } from "../value-objects/account-number";
@@ -112,6 +113,8 @@ const virtualCountry = solicitorSchema.virtual('addressCountry', {
112
113
  justOne: true
113
114
  });
114
115
  virtualCountry.description = 'Populated lookup value for the solicitor\'s address country';
116
+ // Apply audit middleware to the schema
117
+ applyAuditMiddleware(solicitorSchema, "Solicitor");
115
118
  // Apply workflow plugin to the schema
116
119
  applyWorkflowPlugin(solicitorSchema, 'solicitor');
117
120
  const SolicitorModel = mongoose.model("Solicitor", solicitorSchema);
@@ -0,0 +1,56 @@
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 { Types } from "mongoose";
30
+ import { IBaseType } from "../types/base.types";
31
+ export default interface ISolicitor extends IBaseType {
32
+ applicationId: Types.ObjectId;
33
+ pageValidFlag: boolean;
34
+ accountNumber?: string;
35
+ addressCity?: string;
36
+ addressCountryLid?: Types.ObjectId;
37
+ addressLine1?: string;
38
+ addressLine2?: string;
39
+ addressLine3?: string;
40
+ addressPostCode?: string;
41
+ bankAddressLine1?: string;
42
+ bankAddressLine2?: string;
43
+ bankBranch?: string;
44
+ bankCity?: string;
45
+ contactPostcode?: string;
46
+ email?: string;
47
+ institution?: string;
48
+ nameOfAccountHolder?: string;
49
+ nameOfFirm?: string;
50
+ signatory?: string;
51
+ solicitorActing?: string;
52
+ sortCode?: string;
53
+ telephone?: string;
54
+ addressCountry?: any;
55
+ }
56
+ //# sourceMappingURL=solicitor.type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solicitor.type.d.ts","sourceRoot":"","sources":["../../applications/solicitor.type.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,OAAO,WAAW,UAAW,SAAQ,SAAS;IACnD,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,cAAc,CAAC,EAAE,GAAG,CAAC;CACtB"}
@@ -0,0 +1 @@
1
+ export {};
@@ -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;