@valentine-efagene/qshelter-common 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/OpenApiHelper.ts +121 -0
  2. package/decorator/permission.decorator.ts +4 -0
  3. package/decorator/tenant.decorator.ts +16 -0
  4. package/dist/entities/BaseEntity.d.ts +11 -0
  5. package/dist/entities/BaseEntity.js +54 -0
  6. package/dist/entities/BaseEntity.js.map +1 -0
  7. package/dist/entities/TenantAwareEntity.d.ts +10 -0
  8. package/dist/entities/TenantAwareEntity.js +52 -0
  9. package/dist/entities/TenantAwareEntity.js.map +1 -0
  10. package/dist/entities/TenantAwareRepository.d.ts +13 -0
  11. package/dist/entities/TenantAwareRepository.js +65 -0
  12. package/dist/entities/TenantAwareRepository.js.map +1 -0
  13. package/dist/entities/amenity.entity.d.ts +4 -0
  14. package/dist/entities/amenity.entity.js +27 -0
  15. package/dist/entities/amenity.entity.js.map +1 -0
  16. package/dist/entities/common.entity.d.ts +17 -0
  17. package/dist/entities/common.entity.js +63 -0
  18. package/dist/entities/common.entity.js.map +1 -0
  19. package/dist/entities/common.pure.entity.d.ts +11 -0
  20. package/dist/entities/common.pure.entity.js +51 -0
  21. package/dist/entities/common.pure.entity.js.map +1 -0
  22. package/dist/entities/index.d.ts +27 -0
  23. package/dist/entities/index.js +44 -0
  24. package/dist/entities/index.js.map +1 -0
  25. package/dist/entities/mortgage-document.entity.d.ts +14 -0
  26. package/dist/entities/mortgage-document.entity.js +58 -0
  27. package/dist/entities/mortgage-document.entity.js.map +1 -0
  28. package/dist/entities/mortgage-downpayment-installment.entity.d.ts +19 -0
  29. package/dist/entities/mortgage-downpayment-installment.entity.js +63 -0
  30. package/dist/entities/mortgage-downpayment-installment.entity.js.map +1 -0
  31. package/dist/entities/mortgage-downpayment-payment.entity.d.ts +28 -0
  32. package/dist/entities/mortgage-downpayment-payment.entity.js +84 -0
  33. package/dist/entities/mortgage-downpayment-payment.entity.js.map +1 -0
  34. package/dist/entities/mortgage-downpayment.entity.d.ts +22 -0
  35. package/dist/entities/mortgage-downpayment.entity.js +66 -0
  36. package/dist/entities/mortgage-downpayment.entity.js.map +1 -0
  37. package/dist/entities/mortgage-step.entity.d.ts +12 -0
  38. package/dist/entities/mortgage-step.entity.js +52 -0
  39. package/dist/entities/mortgage-step.entity.js.map +1 -0
  40. package/dist/entities/mortgage-type.entity.d.ts +10 -0
  41. package/dist/entities/mortgage-type.entity.js +46 -0
  42. package/dist/entities/mortgage-type.entity.js.map +1 -0
  43. package/dist/entities/mortgage.entity.d.ts +37 -0
  44. package/dist/entities/mortgage.entity.js +124 -0
  45. package/dist/entities/mortgage.entity.js.map +1 -0
  46. package/dist/entities/password_reset_tokens.entity.d.ts +7 -0
  47. package/dist/entities/password_reset_tokens.entity.js +43 -0
  48. package/dist/entities/password_reset_tokens.entity.js.map +1 -0
  49. package/dist/entities/permission.entity.d.ts +6 -0
  50. package/dist/entities/permission.entity.js +30 -0
  51. package/dist/entities/permission.entity.js.map +1 -0
  52. package/dist/entities/property-document.entity.d.ts +6 -0
  53. package/dist/entities/property-document.entity.js +34 -0
  54. package/dist/entities/property-document.entity.js.map +1 -0
  55. package/dist/entities/property-media.entity.d.ts +6 -0
  56. package/dist/entities/property-media.entity.js +36 -0
  57. package/dist/entities/property-media.entity.js.map +1 -0
  58. package/dist/entities/property.entity.d.ts +36 -0
  59. package/dist/entities/property.entity.js +182 -0
  60. package/dist/entities/property.entity.js.map +1 -0
  61. package/dist/entities/refresh_token.entity.d.ts +7 -0
  62. package/dist/entities/refresh_token.entity.js +35 -0
  63. package/dist/entities/refresh_token.entity.js.map +1 -0
  64. package/dist/entities/role.entity.d.ts +8 -0
  65. package/dist/entities/role.entity.js +39 -0
  66. package/dist/entities/role.entity.js.map +1 -0
  67. package/dist/entities/settings.entity.d.ts +17 -0
  68. package/dist/entities/settings.entity.js +79 -0
  69. package/dist/entities/settings.entity.js.map +1 -0
  70. package/dist/entities/social.entity.d.ts +8 -0
  71. package/dist/entities/social.entity.js +46 -0
  72. package/dist/entities/social.entity.js.map +1 -0
  73. package/dist/entities/tenant.entity.d.ts +29 -0
  74. package/dist/entities/tenant.entity.js +82 -0
  75. package/dist/entities/tenant.entity.js.map +1 -0
  76. package/dist/entities/transaction.entity.d.ts +17 -0
  77. package/dist/entities/transaction.entity.js +84 -0
  78. package/dist/entities/transaction.entity.js.map +1 -0
  79. package/dist/entities/user.entity.d.ts +26 -0
  80. package/dist/entities/user.entity.js +103 -0
  81. package/dist/entities/user.entity.js.map +1 -0
  82. package/dist/entities/user_suspensions.entity.d.ts +7 -0
  83. package/dist/entities/user_suspensions.entity.js +42 -0
  84. package/dist/entities/user_suspensions.entity.js.map +1 -0
  85. package/dist/entities/wallet.entity.d.ts +17 -0
  86. package/dist/entities/wallet.entity.js +79 -0
  87. package/dist/entities/wallet.entity.js.map +1 -0
  88. package/dist/index.d.ts +3 -0
  89. package/dist/index.js +20 -0
  90. package/dist/index.js.map +1 -0
  91. package/dist/pagination/index.d.ts +2 -0
  92. package/dist/pagination/index.js +19 -0
  93. package/dist/pagination/index.js.map +1 -0
  94. package/dist/pagination/pagination.helper.d.ts +7 -0
  95. package/dist/pagination/pagination.helper.js +40 -0
  96. package/dist/pagination/pagination.helper.js.map +1 -0
  97. package/dist/pagination/pagination.types.d.ts +19 -0
  98. package/dist/pagination/pagination.types.js +3 -0
  99. package/dist/pagination/pagination.types.js.map +1 -0
  100. package/dist/standard-response.d.ts +7 -0
  101. package/dist/standard-response.js +27 -0
  102. package/dist/standard-response.js.map +1 -0
  103. package/dist/tsconfig.tsbuildinfo +1 -0
  104. package/dist/types/common.type.d.ts +26 -0
  105. package/dist/types/common.type.js +26 -0
  106. package/dist/types/common.type.js.map +1 -0
  107. package/dist/types/mortgage-fsm.types.d.ts +180 -0
  108. package/dist/types/mortgage-fsm.types.js +130 -0
  109. package/dist/types/mortgage-fsm.types.js.map +1 -0
  110. package/dist/types/policy.types.d.ts +18 -0
  111. package/dist/types/policy.types.js +3 -0
  112. package/dist/types/policy.types.js.map +1 -0
  113. package/dist/types/property.type.d.ts +9 -0
  114. package/dist/types/property.type.js +15 -0
  115. package/dist/types/property.type.js.map +1 -0
  116. package/dist/types/social.enums.d.ts +15 -0
  117. package/dist/types/social.enums.js +22 -0
  118. package/dist/types/social.enums.js.map +1 -0
  119. package/dist/types/tenant.enums.d.ts +13 -0
  120. package/dist/types/tenant.enums.js +19 -0
  121. package/dist/types/tenant.enums.js.map +1 -0
  122. package/dist/types/transaction.type.d.ts +8 -0
  123. package/dist/types/transaction.type.js +14 -0
  124. package/dist/types/transaction.type.js.map +1 -0
  125. package/dist/types/user.enums.d.ts +10 -0
  126. package/dist/types/user.enums.js +16 -0
  127. package/dist/types/user.enums.js.map +1 -0
  128. package/entities/BaseEntity.ts +34 -0
  129. package/entities/TenantAwareEntity.ts +34 -0
  130. package/entities/TenantAwareRepository.ts +100 -0
  131. package/entities/amenity.entity.ts +10 -0
  132. package/entities/common.entity.ts +46 -0
  133. package/entities/common.pure.entity.ts +36 -0
  134. package/entities/index.ts +27 -0
  135. package/entities/mortgage-document.entity.ts +37 -0
  136. package/entities/mortgage-downpayment-installment.entity.ts +40 -0
  137. package/entities/mortgage-downpayment-payment.entity.ts +61 -0
  138. package/entities/mortgage-downpayment.entity.ts +43 -0
  139. package/entities/mortgage-step.entity.ts +33 -0
  140. package/entities/mortgage-type.entity.ts +31 -0
  141. package/entities/mortgage.entity.ts +89 -0
  142. package/entities/password_reset_tokens.entity.ts +25 -0
  143. package/entities/permission.entity.ts +12 -0
  144. package/entities/property-document.entity.ts +21 -0
  145. package/entities/property-media.entity.ts +23 -0
  146. package/entities/property.entity.ts +147 -0
  147. package/entities/refresh_token.entity.ts +16 -0
  148. package/entities/role.entity.ts +20 -0
  149. package/entities/settings.entity.ts +56 -0
  150. package/entities/social.entity.ts +27 -0
  151. package/entities/tenant.entity.ts +65 -0
  152. package/entities/transaction.entity.ts +56 -0
  153. package/entities/user.entity.ts +89 -0
  154. package/entities/user_suspensions.entity.ts +24 -0
  155. package/entities/wallet.entity.ts +54 -0
  156. package/guard/permission.guard.ts +42 -0
  157. package/guard/swagger-auth.guard.ts +9 -0
  158. package/helpers/ArrayHelper.ts +1 -0
  159. package/helpers/ConstantHelper.ts +101 -0
  160. package/helpers/CustomNamingStrategy.ts +27 -0
  161. package/helpers/DateHelper.ts +21 -0
  162. package/helpers/EmailHelper.ts +38 -0
  163. package/helpers/FileSystemHelper.ts +101 -0
  164. package/index.ts +9 -0
  165. package/middleware/TenantMiddleware.ts +52 -0
  166. package/package.json +46 -0
  167. package/pagination/index.ts +2 -0
  168. package/pagination/pagination.helper.ts +57 -0
  169. package/pagination/pagination.types.ts +21 -0
  170. package/standard-response.ts +16 -0
  171. package/tsconfig.json +33 -0
  172. package/types/common.type.ts +32 -0
  173. package/types/mortgage-fsm.types.ts +279 -0
  174. package/types/policy.types.ts +21 -0
  175. package/types/property.type.ts +10 -0
  176. package/types/social.enums.ts +17 -0
  177. package/types/tenant.enums.ts +14 -0
  178. package/types/transaction.type.ts +9 -0
  179. package/types/user.enums.ts +11 -0
@@ -0,0 +1,26 @@
1
+ export declare enum DocumentStatus {
2
+ APPROVED = "APPROVED",
3
+ PENDING = "PENDING",
4
+ DECLINED = "DECLINED"
5
+ }
6
+ export declare enum Status {
7
+ APPROVED = "APPROVED",
8
+ PENDING = "PENDING",
9
+ DECLINED = "DECLINED"
10
+ }
11
+ export interface IDocument {
12
+ url: string;
13
+ name: string;
14
+ description: string;
15
+ }
16
+ export declare class PaginatedData {
17
+ total: number;
18
+ totalPages: number;
19
+ currentPage: number;
20
+ }
21
+ export declare enum Frequency {
22
+ MONTHLY = "MONTHLY",
23
+ YEARLY = "YEARLY",
24
+ ONE_TIME = "ONE_TIME",
25
+ DAILY = "DAILY"
26
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Frequency = exports.PaginatedData = exports.Status = exports.DocumentStatus = void 0;
4
+ var DocumentStatus;
5
+ (function (DocumentStatus) {
6
+ DocumentStatus["APPROVED"] = "APPROVED";
7
+ DocumentStatus["PENDING"] = "PENDING";
8
+ DocumentStatus["DECLINED"] = "DECLINED";
9
+ })(DocumentStatus || (exports.DocumentStatus = DocumentStatus = {}));
10
+ var Status;
11
+ (function (Status) {
12
+ Status["APPROVED"] = "APPROVED";
13
+ Status["PENDING"] = "PENDING";
14
+ Status["DECLINED"] = "DECLINED";
15
+ })(Status || (exports.Status = Status = {}));
16
+ class PaginatedData {
17
+ }
18
+ exports.PaginatedData = PaginatedData;
19
+ var Frequency;
20
+ (function (Frequency) {
21
+ Frequency["MONTHLY"] = "MONTHLY";
22
+ Frequency["YEARLY"] = "YEARLY";
23
+ Frequency["ONE_TIME"] = "ONE_TIME";
24
+ Frequency["DAILY"] = "DAILY";
25
+ })(Frequency || (exports.Frequency = Frequency = {}));
26
+ //# sourceMappingURL=common.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.type.js","sourceRoot":"","sources":["../../types/common.type.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,qCAAmB,CAAA;IACnB,uCAAqB,CAAA;AACvB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAED,IAAY,MAIX;AAJD,WAAY,MAAM;IAChB,+BAAqB,CAAA;IACrB,6BAAmB,CAAA;IACnB,+BAAqB,CAAA;AACvB,CAAC,EAJW,MAAM,sBAAN,MAAM,QAIjB;AAQD,MAAa,aAAa;CAMzB;AAND,sCAMC;AAED,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,gCAAmB,CAAA;IACnB,8BAAiB,CAAA;IACjB,kCAAqB,CAAA;IACrB,4BAAe,CAAA;AACjB,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB"}
@@ -0,0 +1,180 @@
1
+ export declare enum MortgageState {
2
+ DRAFT = "DRAFT",
3
+ SUBMITTED = "SUBMITTED",
4
+ PRE_QUALIFICATION = "PRE_QUALIFICATION",
5
+ DOCUMENT_COLLECTION = "DOCUMENT_COLLECTION",
6
+ UNDERWRITING = "UNDERWRITING",
7
+ APPRAISAL_ORDERED = "APPRAISAL_ORDERED",
8
+ APPRAISAL_REVIEW = "APPRAISAL_REVIEW",
9
+ CONDITIONAL_APPROVAL = "CONDITIONAL_APPROVAL",
10
+ APPROVED = "APPROVED",
11
+ CLOSING_SCHEDULED = "CLOSING_SCHEDULED",
12
+ AWAITING_DOWNPAYMENT = "AWAITING_DOWNPAYMENT",
13
+ DOWNPAYMENT_PARTIAL = "DOWNPAYMENT_PARTIAL",
14
+ DOWNPAYMENT_COMPLETE = "DOWNPAYMENT_COMPLETE",
15
+ ACTIVE = "ACTIVE",
16
+ CURRENT = "CURRENT",
17
+ DELINQUENT_30 = "DELINQUENT_30",
18
+ DELINQUENT_60 = "DELINQUENT_60",
19
+ DELINQUENT_90 = "DELINQUENT_90",
20
+ DELINQUENT_120_PLUS = "DELINQUENT_120_PLUS",
21
+ DEFAULT = "DEFAULT",
22
+ FORBEARANCE = "FORBEARANCE",
23
+ MODIFICATION = "MODIFICATION",
24
+ SHORT_SALE = "SHORT_SALE",
25
+ FORECLOSURE_INITIATED = "FORECLOSURE_INITIATED",
26
+ FORECLOSURE_PENDING = "FORECLOSURE_PENDING",
27
+ FORECLOSED = "FORECLOSED",
28
+ REO = "REO",
29
+ PAID_OFF = "PAID_OFF",
30
+ REFINANCED = "REFINANCED",
31
+ CANCELLED = "CANCELLED",
32
+ REJECTED = "REJECTED",
33
+ WITHDRAWN = "WITHDRAWN",
34
+ SUSPENDED = "SUSPENDED"
35
+ }
36
+ export declare enum MortgageEvent {
37
+ SUBMIT_APPLICATION = "SUBMIT_APPLICATION",
38
+ REQUEST_DOCUMENTS = "REQUEST_DOCUMENTS",
39
+ DOCUMENTS_SUBMITTED = "DOCUMENTS_SUBMITTED",
40
+ START_UNDERWRITING = "START_UNDERWRITING",
41
+ ORDER_APPRAISAL = "ORDER_APPRAISAL",
42
+ APPRAISAL_COMPLETED = "APPRAISAL_COMPLETED",
43
+ APPRAISAL_APPROVED = "APPRAISAL_APPROVED",
44
+ APPRAISAL_REJECTED = "APPRAISAL_REJECTED",
45
+ REQUEST_CONDITIONS = "REQUEST_CONDITIONS",
46
+ CONDITIONS_MET = "CONDITIONS_MET",
47
+ APPROVE = "APPROVE",
48
+ REJECT = "REJECT",
49
+ SCHEDULE_CLOSING = "SCHEDULE_CLOSING",
50
+ REQUEST_DOWNPAYMENT = "REQUEST_DOWNPAYMENT",
51
+ RECEIVE_PARTIAL_DOWNPAYMENT = "RECEIVE_PARTIAL_DOWNPAYMENT",
52
+ RECEIVE_FULL_DOWNPAYMENT = "RECEIVE_FULL_DOWNPAYMENT",
53
+ ACTIVATE = "ACTIVATE",
54
+ DISBURSE_FUNDS = "DISBURSE_FUNDS",
55
+ RECEIVE_PAYMENT = "RECEIVE_PAYMENT",
56
+ MISS_PAYMENT = "MISS_PAYMENT",
57
+ MARK_DELINQUENT = "MARK_DELINQUENT",
58
+ CURE_DELINQUENCY = "CURE_DELINQUENCY",
59
+ DECLARE_DEFAULT = "DECLARE_DEFAULT",
60
+ GRANT_FORBEARANCE = "GRANT_FORBEARANCE",
61
+ APPROVE_MODIFICATION = "APPROVE_MODIFICATION",
62
+ APPROVE_SHORT_SALE = "APPROVE_SHORT_SALE",
63
+ INITIATE_FORECLOSURE = "INITIATE_FORECLOSURE",
64
+ FORECLOSE = "FORECLOSE",
65
+ CONVERT_TO_REO = "CONVERT_TO_REO",
66
+ PAY_OFF = "PAY_OFF",
67
+ REFINANCE = "REFINANCE",
68
+ CANCEL = "CANCEL",
69
+ WITHDRAW = "WITHDRAW",
70
+ SUSPEND = "SUSPEND",
71
+ RESUME = "RESUME"
72
+ }
73
+ export declare enum MortgageAction {
74
+ NOTIFY_BORROWER = "NOTIFY_BORROWER",
75
+ NOTIFY_UNDERWRITER = "NOTIFY_UNDERWRITER",
76
+ NOTIFY_CLOSER = "NOTIFY_CLOSER",
77
+ NOTIFY_COLLECTIONS = "NOTIFY_COLLECTIONS",
78
+ NOTIFY_LEGAL = "NOTIFY_LEGAL",
79
+ SEND_EMAIL = "SEND_EMAIL",
80
+ SEND_SMS = "SEND_SMS",
81
+ REQUEST_DOCUMENTS = "REQUEST_DOCUMENTS",
82
+ GENERATE_AGREEMENT = "GENERATE_AGREEMENT",
83
+ GENERATE_APPROVAL_LETTER = "GENERATE_APPROVAL_LETTER",
84
+ GENERATE_CLOSING_DISCLOSURE = "GENERATE_CLOSING_DISCLOSURE",
85
+ GENERATE_CLOSING_DOCS = "GENERATE_CLOSING_DOCS",
86
+ GENERATE_PROMISSORY_NOTE = "GENERATE_PROMISSORY_NOTE",
87
+ REQUEST_TITLE_INSURANCE = "REQUEST_TITLE_INSURANCE",
88
+ ORDER_APPRAISAL = "ORDER_APPRAISAL",
89
+ REQUEST_INSPECTION = "REQUEST_INSPECTION",
90
+ RUN_CREDIT_CHECK = "RUN_CREDIT_CHECK",
91
+ VERIFY_INCOME = "VERIFY_INCOME",
92
+ VERIFY_EMPLOYMENT = "VERIFY_EMPLOYMENT",
93
+ VERIFY_INSURANCE = "VERIFY_INSURANCE",
94
+ CALCULATE_PAYMENT_SCHEDULE = "CALCULATE_PAYMENT_SCHEDULE",
95
+ SETUP_PAYMENT_SCHEDULE = "SETUP_PAYMENT_SCHEDULE",
96
+ DISBURSE_LOAN_AMOUNT = "DISBURSE_LOAN_AMOUNT",
97
+ DISBURSE_FUNDS = "DISBURSE_FUNDS",
98
+ PROCESS_PAYMENT = "PROCESS_PAYMENT",
99
+ RECORD_PAYMENT = "RECORD_PAYMENT",
100
+ REFUND_PAYMENT = "REFUND_PAYMENT",
101
+ ASSESS_LATE_FEE = "ASSESS_LATE_FEE",
102
+ UPDATE_CREDIT_BUREAU = "UPDATE_CREDIT_BUREAU",
103
+ FREEZE_ACCOUNT = "FREEZE_ACCOUNT",
104
+ ASSIGN_UNDERWRITER = "ASSIGN_UNDERWRITER",
105
+ ORDER_TITLE_SEARCH = "ORDER_TITLE_SEARCH",
106
+ SCHEDULE_INSPECTION = "SCHEDULE_INSPECTION",
107
+ CREATE_ESCROW_ACCOUNT = "CREATE_ESCROW_ACCOUNT",
108
+ SETUP_ESCROW = "SETUP_ESCROW",
109
+ RECORD_LIEN = "RECORD_LIEN",
110
+ RELEASE_LIEN = "RELEASE_LIEN",
111
+ INITIATE_FORECLOSURE = "INITIATE_FORECLOSURE",
112
+ SCHEDULE_AUCTION = "SCHEDULE_AUCTION",
113
+ LOG_AUDIT_TRAIL = "LOG_AUDIT_TRAIL",
114
+ VERIFY_COMPLIANCE = "VERIFY_COMPLIANCE",
115
+ GENERATE_REGULATORY_REPORT = "GENERATE_REGULATORY_REPORT",
116
+ REPORT_TO_REGULATOR = "REPORT_TO_REGULATOR",
117
+ UPDATE_ANALYTICS = "UPDATE_ANALYTICS"
118
+ }
119
+ export interface MortgageFSMContext {
120
+ mortgageId: number;
121
+ borrowerId: number;
122
+ propertyId: number;
123
+ principal: number;
124
+ downPayment: number;
125
+ downPaymentReceived?: number;
126
+ interestRate: number;
127
+ termMonths: number;
128
+ submittedAt?: Date;
129
+ approvedAt?: Date;
130
+ activatedAt?: Date;
131
+ paidOffAt?: Date;
132
+ lastPaymentDate?: Date;
133
+ nextPaymentDate?: Date;
134
+ daysPastDue?: number;
135
+ totalPaid?: number;
136
+ remainingBalance?: number;
137
+ documentsComplete?: boolean;
138
+ appraisalValue?: number;
139
+ appraisalDate?: Date;
140
+ conditions?: string[];
141
+ conditionsMet?: boolean;
142
+ metadata?: Record<string, any>;
143
+ error?: string;
144
+ triggeredBy?: string;
145
+ }
146
+ export interface TransitionGuard {
147
+ name: string;
148
+ check: (context: MortgageFSMContext) => boolean | Promise<boolean>;
149
+ errorMessage?: string;
150
+ }
151
+ export interface TransitionAction {
152
+ name: string;
153
+ execute: (context: MortgageFSMContext) => Promise<void>;
154
+ rollback?: (context: MortgageFSMContext) => Promise<void>;
155
+ }
156
+ export interface StateTransition {
157
+ from: MortgageState | MortgageState[];
158
+ to: MortgageState;
159
+ event: MortgageEvent;
160
+ guards?: TransitionGuard[];
161
+ actions?: TransitionAction[];
162
+ description?: string;
163
+ }
164
+ export interface MortgageStateChangeEvent {
165
+ mortgageId: number;
166
+ fromState: MortgageState;
167
+ toState: MortgageState;
168
+ event: MortgageEvent;
169
+ context: MortgageFSMContext;
170
+ timestamp: Date;
171
+ triggeredBy: string;
172
+ success: boolean;
173
+ error?: string;
174
+ }
175
+ declare const _default: {
176
+ MortgageState: typeof MortgageState;
177
+ MortgageEvent: typeof MortgageEvent;
178
+ MortgageAction: typeof MortgageAction;
179
+ };
180
+ export default _default;
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MortgageAction = exports.MortgageEvent = exports.MortgageState = void 0;
4
+ var MortgageState;
5
+ (function (MortgageState) {
6
+ MortgageState["DRAFT"] = "DRAFT";
7
+ MortgageState["SUBMITTED"] = "SUBMITTED";
8
+ MortgageState["PRE_QUALIFICATION"] = "PRE_QUALIFICATION";
9
+ MortgageState["DOCUMENT_COLLECTION"] = "DOCUMENT_COLLECTION";
10
+ MortgageState["UNDERWRITING"] = "UNDERWRITING";
11
+ MortgageState["APPRAISAL_ORDERED"] = "APPRAISAL_ORDERED";
12
+ MortgageState["APPRAISAL_REVIEW"] = "APPRAISAL_REVIEW";
13
+ MortgageState["CONDITIONAL_APPROVAL"] = "CONDITIONAL_APPROVAL";
14
+ MortgageState["APPROVED"] = "APPROVED";
15
+ MortgageState["CLOSING_SCHEDULED"] = "CLOSING_SCHEDULED";
16
+ MortgageState["AWAITING_DOWNPAYMENT"] = "AWAITING_DOWNPAYMENT";
17
+ MortgageState["DOWNPAYMENT_PARTIAL"] = "DOWNPAYMENT_PARTIAL";
18
+ MortgageState["DOWNPAYMENT_COMPLETE"] = "DOWNPAYMENT_COMPLETE";
19
+ MortgageState["ACTIVE"] = "ACTIVE";
20
+ MortgageState["CURRENT"] = "CURRENT";
21
+ MortgageState["DELINQUENT_30"] = "DELINQUENT_30";
22
+ MortgageState["DELINQUENT_60"] = "DELINQUENT_60";
23
+ MortgageState["DELINQUENT_90"] = "DELINQUENT_90";
24
+ MortgageState["DELINQUENT_120_PLUS"] = "DELINQUENT_120_PLUS";
25
+ MortgageState["DEFAULT"] = "DEFAULT";
26
+ MortgageState["FORBEARANCE"] = "FORBEARANCE";
27
+ MortgageState["MODIFICATION"] = "MODIFICATION";
28
+ MortgageState["SHORT_SALE"] = "SHORT_SALE";
29
+ MortgageState["FORECLOSURE_INITIATED"] = "FORECLOSURE_INITIATED";
30
+ MortgageState["FORECLOSURE_PENDING"] = "FORECLOSURE_PENDING";
31
+ MortgageState["FORECLOSED"] = "FORECLOSED";
32
+ MortgageState["REO"] = "REO";
33
+ MortgageState["PAID_OFF"] = "PAID_OFF";
34
+ MortgageState["REFINANCED"] = "REFINANCED";
35
+ MortgageState["CANCELLED"] = "CANCELLED";
36
+ MortgageState["REJECTED"] = "REJECTED";
37
+ MortgageState["WITHDRAWN"] = "WITHDRAWN";
38
+ MortgageState["SUSPENDED"] = "SUSPENDED";
39
+ })(MortgageState || (exports.MortgageState = MortgageState = {}));
40
+ var MortgageEvent;
41
+ (function (MortgageEvent) {
42
+ MortgageEvent["SUBMIT_APPLICATION"] = "SUBMIT_APPLICATION";
43
+ MortgageEvent["REQUEST_DOCUMENTS"] = "REQUEST_DOCUMENTS";
44
+ MortgageEvent["DOCUMENTS_SUBMITTED"] = "DOCUMENTS_SUBMITTED";
45
+ MortgageEvent["START_UNDERWRITING"] = "START_UNDERWRITING";
46
+ MortgageEvent["ORDER_APPRAISAL"] = "ORDER_APPRAISAL";
47
+ MortgageEvent["APPRAISAL_COMPLETED"] = "APPRAISAL_COMPLETED";
48
+ MortgageEvent["APPRAISAL_APPROVED"] = "APPRAISAL_APPROVED";
49
+ MortgageEvent["APPRAISAL_REJECTED"] = "APPRAISAL_REJECTED";
50
+ MortgageEvent["REQUEST_CONDITIONS"] = "REQUEST_CONDITIONS";
51
+ MortgageEvent["CONDITIONS_MET"] = "CONDITIONS_MET";
52
+ MortgageEvent["APPROVE"] = "APPROVE";
53
+ MortgageEvent["REJECT"] = "REJECT";
54
+ MortgageEvent["SCHEDULE_CLOSING"] = "SCHEDULE_CLOSING";
55
+ MortgageEvent["REQUEST_DOWNPAYMENT"] = "REQUEST_DOWNPAYMENT";
56
+ MortgageEvent["RECEIVE_PARTIAL_DOWNPAYMENT"] = "RECEIVE_PARTIAL_DOWNPAYMENT";
57
+ MortgageEvent["RECEIVE_FULL_DOWNPAYMENT"] = "RECEIVE_FULL_DOWNPAYMENT";
58
+ MortgageEvent["ACTIVATE"] = "ACTIVATE";
59
+ MortgageEvent["DISBURSE_FUNDS"] = "DISBURSE_FUNDS";
60
+ MortgageEvent["RECEIVE_PAYMENT"] = "RECEIVE_PAYMENT";
61
+ MortgageEvent["MISS_PAYMENT"] = "MISS_PAYMENT";
62
+ MortgageEvent["MARK_DELINQUENT"] = "MARK_DELINQUENT";
63
+ MortgageEvent["CURE_DELINQUENCY"] = "CURE_DELINQUENCY";
64
+ MortgageEvent["DECLARE_DEFAULT"] = "DECLARE_DEFAULT";
65
+ MortgageEvent["GRANT_FORBEARANCE"] = "GRANT_FORBEARANCE";
66
+ MortgageEvent["APPROVE_MODIFICATION"] = "APPROVE_MODIFICATION";
67
+ MortgageEvent["APPROVE_SHORT_SALE"] = "APPROVE_SHORT_SALE";
68
+ MortgageEvent["INITIATE_FORECLOSURE"] = "INITIATE_FORECLOSURE";
69
+ MortgageEvent["FORECLOSE"] = "FORECLOSE";
70
+ MortgageEvent["CONVERT_TO_REO"] = "CONVERT_TO_REO";
71
+ MortgageEvent["PAY_OFF"] = "PAY_OFF";
72
+ MortgageEvent["REFINANCE"] = "REFINANCE";
73
+ MortgageEvent["CANCEL"] = "CANCEL";
74
+ MortgageEvent["WITHDRAW"] = "WITHDRAW";
75
+ MortgageEvent["SUSPEND"] = "SUSPEND";
76
+ MortgageEvent["RESUME"] = "RESUME";
77
+ })(MortgageEvent || (exports.MortgageEvent = MortgageEvent = {}));
78
+ var MortgageAction;
79
+ (function (MortgageAction) {
80
+ MortgageAction["NOTIFY_BORROWER"] = "NOTIFY_BORROWER";
81
+ MortgageAction["NOTIFY_UNDERWRITER"] = "NOTIFY_UNDERWRITER";
82
+ MortgageAction["NOTIFY_CLOSER"] = "NOTIFY_CLOSER";
83
+ MortgageAction["NOTIFY_COLLECTIONS"] = "NOTIFY_COLLECTIONS";
84
+ MortgageAction["NOTIFY_LEGAL"] = "NOTIFY_LEGAL";
85
+ MortgageAction["SEND_EMAIL"] = "SEND_EMAIL";
86
+ MortgageAction["SEND_SMS"] = "SEND_SMS";
87
+ MortgageAction["REQUEST_DOCUMENTS"] = "REQUEST_DOCUMENTS";
88
+ MortgageAction["GENERATE_AGREEMENT"] = "GENERATE_AGREEMENT";
89
+ MortgageAction["GENERATE_APPROVAL_LETTER"] = "GENERATE_APPROVAL_LETTER";
90
+ MortgageAction["GENERATE_CLOSING_DISCLOSURE"] = "GENERATE_CLOSING_DISCLOSURE";
91
+ MortgageAction["GENERATE_CLOSING_DOCS"] = "GENERATE_CLOSING_DOCS";
92
+ MortgageAction["GENERATE_PROMISSORY_NOTE"] = "GENERATE_PROMISSORY_NOTE";
93
+ MortgageAction["REQUEST_TITLE_INSURANCE"] = "REQUEST_TITLE_INSURANCE";
94
+ MortgageAction["ORDER_APPRAISAL"] = "ORDER_APPRAISAL";
95
+ MortgageAction["REQUEST_INSPECTION"] = "REQUEST_INSPECTION";
96
+ MortgageAction["RUN_CREDIT_CHECK"] = "RUN_CREDIT_CHECK";
97
+ MortgageAction["VERIFY_INCOME"] = "VERIFY_INCOME";
98
+ MortgageAction["VERIFY_EMPLOYMENT"] = "VERIFY_EMPLOYMENT";
99
+ MortgageAction["VERIFY_INSURANCE"] = "VERIFY_INSURANCE";
100
+ MortgageAction["CALCULATE_PAYMENT_SCHEDULE"] = "CALCULATE_PAYMENT_SCHEDULE";
101
+ MortgageAction["SETUP_PAYMENT_SCHEDULE"] = "SETUP_PAYMENT_SCHEDULE";
102
+ MortgageAction["DISBURSE_LOAN_AMOUNT"] = "DISBURSE_LOAN_AMOUNT";
103
+ MortgageAction["DISBURSE_FUNDS"] = "DISBURSE_FUNDS";
104
+ MortgageAction["PROCESS_PAYMENT"] = "PROCESS_PAYMENT";
105
+ MortgageAction["RECORD_PAYMENT"] = "RECORD_PAYMENT";
106
+ MortgageAction["REFUND_PAYMENT"] = "REFUND_PAYMENT";
107
+ MortgageAction["ASSESS_LATE_FEE"] = "ASSESS_LATE_FEE";
108
+ MortgageAction["UPDATE_CREDIT_BUREAU"] = "UPDATE_CREDIT_BUREAU";
109
+ MortgageAction["FREEZE_ACCOUNT"] = "FREEZE_ACCOUNT";
110
+ MortgageAction["ASSIGN_UNDERWRITER"] = "ASSIGN_UNDERWRITER";
111
+ MortgageAction["ORDER_TITLE_SEARCH"] = "ORDER_TITLE_SEARCH";
112
+ MortgageAction["SCHEDULE_INSPECTION"] = "SCHEDULE_INSPECTION";
113
+ MortgageAction["CREATE_ESCROW_ACCOUNT"] = "CREATE_ESCROW_ACCOUNT";
114
+ MortgageAction["SETUP_ESCROW"] = "SETUP_ESCROW";
115
+ MortgageAction["RECORD_LIEN"] = "RECORD_LIEN";
116
+ MortgageAction["RELEASE_LIEN"] = "RELEASE_LIEN";
117
+ MortgageAction["INITIATE_FORECLOSURE"] = "INITIATE_FORECLOSURE";
118
+ MortgageAction["SCHEDULE_AUCTION"] = "SCHEDULE_AUCTION";
119
+ MortgageAction["LOG_AUDIT_TRAIL"] = "LOG_AUDIT_TRAIL";
120
+ MortgageAction["VERIFY_COMPLIANCE"] = "VERIFY_COMPLIANCE";
121
+ MortgageAction["GENERATE_REGULATORY_REPORT"] = "GENERATE_REGULATORY_REPORT";
122
+ MortgageAction["REPORT_TO_REGULATOR"] = "REPORT_TO_REGULATOR";
123
+ MortgageAction["UPDATE_ANALYTICS"] = "UPDATE_ANALYTICS";
124
+ })(MortgageAction || (exports.MortgageAction = MortgageAction = {}));
125
+ exports.default = {
126
+ MortgageState,
127
+ MortgageEvent,
128
+ MortgageAction,
129
+ };
130
+ //# sourceMappingURL=mortgage-fsm.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mortgage-fsm.types.js","sourceRoot":"","sources":["../../types/mortgage-fsm.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface PolicyResource {
2
+ path: string;
3
+ methods: string[];
4
+ }
5
+ export interface PolicyStatement {
6
+ effect: 'Allow' | 'Deny';
7
+ resources: PolicyResource[];
8
+ }
9
+ export interface RolePolicy {
10
+ version: string;
11
+ statements: PolicyStatement[];
12
+ }
13
+ export interface RolePolicyDocument {
14
+ roleName: string;
15
+ policy: RolePolicy;
16
+ isActive: boolean;
17
+ tenantId?: string;
18
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=policy.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.types.js","sourceRoot":"","sources":["../../types/policy.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ export declare enum PropertyStatus {
2
+ APPROVED = "APPROVED",
3
+ PENDING = "PENDING",
4
+ DECLINED = "DECLINED"
5
+ }
6
+ export declare enum PropertyType {
7
+ APARTMENT = "APARTMENT",
8
+ HOUSE = "HOUSE"
9
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PropertyType = exports.PropertyStatus = void 0;
4
+ var PropertyStatus;
5
+ (function (PropertyStatus) {
6
+ PropertyStatus["APPROVED"] = "APPROVED";
7
+ PropertyStatus["PENDING"] = "PENDING";
8
+ PropertyStatus["DECLINED"] = "DECLINED";
9
+ })(PropertyStatus || (exports.PropertyStatus = PropertyStatus = {}));
10
+ var PropertyType;
11
+ (function (PropertyType) {
12
+ PropertyType["APARTMENT"] = "APARTMENT";
13
+ PropertyType["HOUSE"] = "HOUSE";
14
+ })(PropertyType || (exports.PropertyType = PropertyType = {}));
15
+ //# sourceMappingURL=property.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"property.type.js","sourceRoot":"","sources":["../../types/property.type.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAIX;AAJD,WAAY,cAAc;IACtB,uCAAqB,CAAA;IACrB,qCAAmB,CAAA;IACnB,uCAAqB,CAAA;AACzB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACpB,uCAAuB,CAAA;IACvB,+BAAe,CAAA;AACnB,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB"}
@@ -0,0 +1,15 @@
1
+ export declare enum PropertyCategory {
2
+ RENT = "RENT",
3
+ SALE = "SALE"
4
+ }
5
+ export declare enum PropertyType {
6
+ APARTMENT = "APARTMENT",
7
+ HOUSE = "HOUSE"
8
+ }
9
+ export declare enum Currency {
10
+ USD = "USD",
11
+ EUR = "EUR",
12
+ GBP = "GBP",
13
+ JPY = "JPY",
14
+ NGN = "NGN"
15
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Currency = exports.PropertyType = exports.PropertyCategory = void 0;
4
+ var PropertyCategory;
5
+ (function (PropertyCategory) {
6
+ PropertyCategory["RENT"] = "RENT";
7
+ PropertyCategory["SALE"] = "SALE";
8
+ })(PropertyCategory || (exports.PropertyCategory = PropertyCategory = {}));
9
+ var PropertyType;
10
+ (function (PropertyType) {
11
+ PropertyType["APARTMENT"] = "APARTMENT";
12
+ PropertyType["HOUSE"] = "HOUSE";
13
+ })(PropertyType || (exports.PropertyType = PropertyType = {}));
14
+ var Currency;
15
+ (function (Currency) {
16
+ Currency["USD"] = "USD";
17
+ Currency["EUR"] = "EUR";
18
+ Currency["GBP"] = "GBP";
19
+ Currency["JPY"] = "JPY";
20
+ Currency["NGN"] = "NGN";
21
+ })(Currency || (exports.Currency = Currency = {}));
22
+ //# sourceMappingURL=social.enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social.enums.js","sourceRoot":"","sources":["../../types/social.enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,iCAAa,CAAA;IACb,iCAAa,CAAA;AACf,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,+BAAe,CAAA;AACjB,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAED,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,uBAAW,CAAA;IACX,uBAAW,CAAA;IACX,uBAAW,CAAA;IACX,uBAAW,CAAA;AACb,CAAC,EANW,QAAQ,wBAAR,QAAQ,QAMnB"}
@@ -0,0 +1,13 @@
1
+ export declare enum TenantStatus {
2
+ ACTIVE = "active",
3
+ SUSPENDED = "suspended",
4
+ PENDING = "pending",
5
+ TRIAL = "trial",
6
+ CANCELLED = "cancelled"
7
+ }
8
+ export declare enum TenantPlan {
9
+ FREE = "free",
10
+ BASIC = "basic",
11
+ PREMIUM = "premium",
12
+ ENTERPRISE = "enterprise"
13
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TenantPlan = exports.TenantStatus = void 0;
4
+ var TenantStatus;
5
+ (function (TenantStatus) {
6
+ TenantStatus["ACTIVE"] = "active";
7
+ TenantStatus["SUSPENDED"] = "suspended";
8
+ TenantStatus["PENDING"] = "pending";
9
+ TenantStatus["TRIAL"] = "trial";
10
+ TenantStatus["CANCELLED"] = "cancelled";
11
+ })(TenantStatus || (exports.TenantStatus = TenantStatus = {}));
12
+ var TenantPlan;
13
+ (function (TenantPlan) {
14
+ TenantPlan["FREE"] = "free";
15
+ TenantPlan["BASIC"] = "basic";
16
+ TenantPlan["PREMIUM"] = "premium";
17
+ TenantPlan["ENTERPRISE"] = "enterprise";
18
+ })(TenantPlan || (exports.TenantPlan = TenantPlan = {}));
19
+ //# sourceMappingURL=tenant.enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.enums.js","sourceRoot":"","sources":["../../types/tenant.enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,YAMX;AAND,WAAY,YAAY;IACpB,iCAAiB,CAAA;IACjB,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;IACnB,+BAAe,CAAA;IACf,uCAAuB,CAAA;AAC3B,CAAC,EANW,YAAY,4BAAZ,YAAY,QAMvB;AAED,IAAY,UAKX;AALD,WAAY,UAAU;IAClB,2BAAa,CAAA;IACb,6BAAe,CAAA;IACf,iCAAmB,CAAA;IACnB,uCAAyB,CAAA;AAC7B,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB"}
@@ -0,0 +1,8 @@
1
+ export declare enum TransactionType {
2
+ DEBIT = "debit",
3
+ CREDIT = "credit"
4
+ }
5
+ export declare enum Provider {
6
+ BUDPAY = "budpay",
7
+ PAYSTACK = "paystack"
8
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Provider = exports.TransactionType = void 0;
4
+ var TransactionType;
5
+ (function (TransactionType) {
6
+ TransactionType["DEBIT"] = "debit";
7
+ TransactionType["CREDIT"] = "credit";
8
+ })(TransactionType || (exports.TransactionType = TransactionType = {}));
9
+ var Provider;
10
+ (function (Provider) {
11
+ Provider["BUDPAY"] = "budpay";
12
+ Provider["PAYSTACK"] = "paystack";
13
+ })(Provider || (exports.Provider = Provider = {}));
14
+ //# sourceMappingURL=transaction.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.type.js","sourceRoot":"","sources":["../../types/transaction.type.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAGX;AAHD,WAAY,eAAe;IACvB,kCAAe,CAAA;IACf,oCAAiB,CAAA;AACrB,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IAChB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;AACzB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB"}
@@ -0,0 +1,10 @@
1
+ export declare enum UserRole {
2
+ ADMIN = "admin",
3
+ VENDOR = "vendor",
4
+ USER = "user"
5
+ }
6
+ export declare enum UserStatus {
7
+ ACTIVE = "ACTIVE",
8
+ SUSPENDED = "SUSPENDED",
9
+ PENDING = "PENDING"
10
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserStatus = exports.UserRole = void 0;
4
+ var UserRole;
5
+ (function (UserRole) {
6
+ UserRole["ADMIN"] = "admin";
7
+ UserRole["VENDOR"] = "vendor";
8
+ UserRole["USER"] = "user";
9
+ })(UserRole || (exports.UserRole = UserRole = {}));
10
+ var UserStatus;
11
+ (function (UserStatus) {
12
+ UserStatus["ACTIVE"] = "ACTIVE";
13
+ UserStatus["SUSPENDED"] = "SUSPENDED";
14
+ UserStatus["PENDING"] = "PENDING";
15
+ })(UserStatus || (exports.UserStatus = UserStatus = {}));
16
+ //# sourceMappingURL=user.enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.enums.js","sourceRoot":"","sources":["../../types/user.enums.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,6BAAiB,CAAA;IACjB,yBAAa,CAAA;AACf,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB;AAED,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,+BAAiB,CAAA;IACjB,qCAAuB,CAAA;IACvB,iCAAmB,CAAA;AACrB,CAAC,EAJW,UAAU,0BAAV,UAAU,QAIrB"}
@@ -0,0 +1,34 @@
1
+ import Tenant from './tenant.entity';
2
+ import { CreateDateColumn, DeleteDateColumn, PrimaryGeneratedColumn, UpdateDateColumn, Column, Index, ManyToOne, JoinColumn } from 'typeorm';
3
+
4
+ export class BaseEntity {
5
+ @PrimaryGeneratedColumn()
6
+ id: number;
7
+
8
+ @CreateDateColumn({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' })
9
+ createdAt: Date;
10
+
11
+ @UpdateDateColumn({
12
+ type: 'timestamp',
13
+ default: () => 'CURRENT_TIMESTAMP',
14
+ onUpdate: 'CURRENT_TIMESTAMP',
15
+ })
16
+ updatedAt: Date;
17
+
18
+ @DeleteDateColumn({ nullable: true, default: null })
19
+ deletedAt: Date;
20
+ }
21
+
22
+ /**
23
+ * Tenant-aware version of BaseEntity
24
+ * Use this for entities that need tenant isolation
25
+ */
26
+ export class TenantAwareBaseEntity extends BaseEntity {
27
+ @ManyToOne(() => Tenant, { onDelete: 'CASCADE' })
28
+ @JoinColumn({ name: 'tenant_id' })
29
+ tenant: Tenant;
30
+
31
+ @Column({ name: 'tenant_id' })
32
+ @Index()
33
+ tenantId: number;
34
+ }
@@ -0,0 +1,34 @@
1
+ import Tenant from './tenant.entity';
2
+ import { CreateDateColumn, DeleteDateColumn, PrimaryGeneratedColumn, UpdateDateColumn, Column, Index, ManyToOne, JoinColumn } from 'typeorm';
3
+
4
+ /**
5
+ * Base entity with tenant support
6
+ * All entities that need to be isolated by tenant should extend this
7
+ */
8
+ export class TenantAwareEntity {
9
+ @PrimaryGeneratedColumn()
10
+ id: number;
11
+
12
+ @ManyToOne(() => Tenant, { onDelete: 'CASCADE' })
13
+ @JoinColumn({ name: 'tenant_id' })
14
+ tenant: Tenant;
15
+
16
+ @Column({ name: 'tenant_id' })
17
+ @Index()
18
+ tenantId: number;
19
+
20
+ @CreateDateColumn({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' })
21
+ createdAt: Date;
22
+
23
+ @UpdateDateColumn({
24
+ type: 'timestamp',
25
+ default: () => 'CURRENT_TIMESTAMP',
26
+ onUpdate: 'CURRENT_TIMESTAMP',
27
+ })
28
+ updatedAt: Date;
29
+
30
+ @DeleteDateColumn({ nullable: true, default: null })
31
+ deletedAt: Date;
32
+ }
33
+
34
+ export default TenantAwareEntity;