cloud-ide-model-schema 1.1.141 → 1.1.143

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 (33) hide show
  1. package/lib/config/database.js +297 -30
  2. package/lib/schema/academics/academics_bonafide_request.d.ts +8 -0
  3. package/lib/schema/academics/academics_bonafide_request.js +98 -0
  4. package/lib/schema/academics/index.d.ts +1 -0
  5. package/lib/schema/academics/index.js +1 -0
  6. package/lib/schema/admission/admission_application_main.js +44 -0
  7. package/lib/schema/admission/admission_family_members.js +5 -0
  8. package/lib/schema/admission/admission_rte_details.d.ts +45 -0
  9. package/lib/schema/admission/admission_rte_details.js +177 -0
  10. package/lib/schema/admission/admission_vital_information.d.ts +45 -0
  11. package/lib/schema/admission/admission_vital_information.js +120 -0
  12. package/lib/schema/admission/index.d.ts +2 -0
  13. package/lib/schema/admission/index.js +2 -0
  14. package/lib/schema/auth/auth_user_mst.js +11 -0
  15. package/lib/schema/core/core_department.js +6 -0
  16. package/lib/schema/core/core_designation.js +6 -0
  17. package/lib/schema/core/core_entity_mapping.js +11 -0
  18. package/lib/schema/core/core_user_role.js +6 -0
  19. package/lib/schema/core/core_workflow_approver_rules.d.ts +8 -0
  20. package/lib/schema/core/core_workflow_approver_rules.js +83 -0
  21. package/lib/schema/core/core_workflow_config.d.ts +8 -0
  22. package/lib/schema/core/core_workflow_config.js +103 -0
  23. package/lib/schema/core/core_workflow_registry.d.ts +8 -0
  24. package/lib/schema/core/core_workflow_registry.js +128 -0
  25. package/lib/schema/core/core_workflow_transaction_history.d.ts +8 -0
  26. package/lib/schema/core/core_workflow_transaction_history.js +86 -0
  27. package/lib/schema/core/index.d.ts +13 -1
  28. package/lib/schema/core/index.js +9 -1
  29. package/lib/schema/email/email_log.js +22 -1
  30. package/lib/schema/email/email_reference.js +23 -3
  31. package/lib/schema/email/email_subscription_vendor.js +16 -1
  32. package/lib/schema/email/email_templete.js +36 -1
  33. package/package.json +2 -2
@@ -0,0 +1,45 @@
1
+ import mongoose from "mongoose";
2
+ declare const CAdmissionRteDetails: mongoose.Model<{
3
+ [x: string]: unknown;
4
+ }, {}, {}, {}, mongoose.Document<unknown, {}, {
5
+ [x: string]: unknown;
6
+ }, {}> & {
7
+ [x: string]: unknown;
8
+ } & Required<{
9
+ _id: unknown;
10
+ }> & {
11
+ __v: number;
12
+ }, mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, {
13
+ [x: string]: unknown;
14
+ }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
15
+ [x: string]: unknown;
16
+ }>, {}> & mongoose.FlatRecord<{
17
+ [x: string]: unknown;
18
+ }> & Required<{
19
+ _id: unknown;
20
+ }> & {
21
+ __v: number;
22
+ }>>;
23
+ declare const CAdmissionEntityAccessPassManagementAdmrte: mongoose.Model<{
24
+ [x: string]: unknown;
25
+ }, {}, {}, {}, mongoose.Document<unknown, {}, {
26
+ [x: string]: unknown;
27
+ }, {}> & {
28
+ [x: string]: unknown;
29
+ } & Required<{
30
+ _id: unknown;
31
+ }> & {
32
+ __v: number;
33
+ }, mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, {
34
+ [x: string]: unknown;
35
+ }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
36
+ [x: string]: unknown;
37
+ }>, {}> & mongoose.FlatRecord<{
38
+ [x: string]: unknown;
39
+ }> & Required<{
40
+ _id: unknown;
41
+ }> & {
42
+ __v: number;
43
+ }>>;
44
+ export { CAdmissionEntityAccessPassManagementAdmrte, // collection
45
+ CAdmissionRteDetails };
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CAdmissionRteDetails = exports.CAdmissionEntityAccessPassManagementAdmrte = void 0;
4
+ var mongoose_1 = require("mongoose");
5
+ /**
6
+ * Admission RTE (Right to Education) Details Schema
7
+ *
8
+ * Purpose: Store comprehensive RTE scheme details for admission applications
9
+ * Prefix: admrte_ (admission RTE)
10
+ *
11
+ * BUSINESS LOGIC:
12
+ * 1. Separate table for RTE details to allow future integration with multiple tables
13
+ * 2. One RTE details record per admission (when RTE scheme is applicable)
14
+ * 3. Stores certificates, income details, caste information, BPL card details
15
+ * 4. Reference fields for future extensibility to connect with student master and other tables
16
+ * 5. Entity-based access control
17
+ */
18
+ /* SCHEMA START */
19
+ var admission_rte_details = new mongoose_1.Schema({
20
+ admrte_admission_id_admap: {
21
+ type: mongoose_1.default.Schema.Types.ObjectId,
22
+ ref: 'admission_application_main',
23
+ required: true,
24
+ comment: "Reference to admission application (primary reference)"
25
+ },
26
+ admrte_reference_table: {
27
+ type: String,
28
+ maxlength: 100,
29
+ trim: true,
30
+ comment: "Reference table name for future extensibility (e.g., 'admission_application_main', 'student_master')"
31
+ },
32
+ admrte_reference_id: {
33
+ type: mongoose_1.default.Schema.Types.ObjectId,
34
+ comment: "Reference ID for future extensibility (reference to other tables)"
35
+ },
36
+ admrte_rte_certificate_number: {
37
+ type: String,
38
+ maxlength: 100,
39
+ trim: true,
40
+ comment: "RTE certificate number"
41
+ },
42
+ admrte_rte_certificate_date: {
43
+ type: Date,
44
+ comment: "RTE certificate issue date"
45
+ },
46
+ admrte_rte_category_id_sygms: {
47
+ type: mongoose_1.default.Schema.Types.ObjectId,
48
+ ref: 'core_general_master',
49
+ comment: "RTE category (Economically Weaker Section, Disadvantaged Group, etc.) - Reference to core_general_master with type 'RTE_CATEGORY'"
50
+ },
51
+ admrte_income_certificate_number: {
52
+ type: String,
53
+ maxlength: 100,
54
+ trim: true,
55
+ comment: "Income certificate number"
56
+ },
57
+ admrte_income_certificate_date: {
58
+ type: Date,
59
+ comment: "Income certificate date"
60
+ },
61
+ admrte_income_certificate_id_cyfm: {
62
+ type: mongoose_1.default.Schema.Types.ObjectId,
63
+ ref: 'core_file_manager',
64
+ comment: "Income certificate file manager ID"
65
+ },
66
+ admrte_caste_certificate_number: {
67
+ type: String,
68
+ maxlength: 100,
69
+ trim: true,
70
+ comment: "Caste certificate number"
71
+ },
72
+ admrte_caste_certificate_date: {
73
+ type: Date,
74
+ comment: "Caste certificate date"
75
+ },
76
+ admrte_caste_certificate_id_cyfm: {
77
+ type: mongoose_1.default.Schema.Types.ObjectId,
78
+ ref: 'core_file_manager',
79
+ comment: "Caste certificate file manager ID"
80
+ },
81
+ admrte_caste_category_id_sygms: {
82
+ type: mongoose_1.default.Schema.Types.ObjectId,
83
+ ref: 'core_general_master',
84
+ comment: "Caste category (General, OBC, SC, ST, etc.) - Reference to core_general_master with type 'CASTE_CATEGORY'"
85
+ },
86
+ admrte_bpl_card_number: {
87
+ type: String,
88
+ maxlength: 100,
89
+ trim: true,
90
+ comment: "BPL (Below Poverty Line) card number"
91
+ },
92
+ admrte_bpl_card_id_cyfm: {
93
+ type: mongoose_1.default.Schema.Types.ObjectId,
94
+ ref: 'core_file_manager',
95
+ comment: "BPL card file manager ID"
96
+ },
97
+ admrte_annual_income: {
98
+ type: Number,
99
+ min: 0,
100
+ comment: "Annual family income"
101
+ },
102
+ admrte_annual_income_currency_id_syic: {
103
+ type: mongoose_1.default.Schema.Types.ObjectId,
104
+ ref: 'core_iso_currency',
105
+ comment: "Currency reference for annual income"
106
+ },
107
+ admrte_rte_quota_percentage: {
108
+ type: Number,
109
+ min: 0,
110
+ max: 100,
111
+ comment: "RTE quota percentage (0-100)"
112
+ },
113
+ admrte_remarks: {
114
+ type: String,
115
+ maxlength: 1000,
116
+ trim: true,
117
+ comment: "Additional remarks/notes"
118
+ },
119
+ admrte_isactive: {
120
+ type: Boolean,
121
+ default: true,
122
+ comment: "Is active"
123
+ }
124
+ }, {
125
+ collection: 'admission_rte_details'
126
+ });
127
+ // Indexes for better performance
128
+ admission_rte_details.index({ admrte_admission_id_admap: 1 });
129
+ admission_rte_details.index({ admrte_reference_table: 1, admrte_reference_id: 1 });
130
+ admission_rte_details.index({ admrte_isactive: 1 });
131
+ var CAdmissionRteDetails = mongoose_1.default.model("admission_rte_details", admission_rte_details);
132
+ exports.CAdmissionRteDetails = CAdmissionRteDetails;
133
+ // Access pass for entity-based access control
134
+ var admission_entity_access_pass_management_admrte = new mongoose_1.Schema({
135
+ admepm_user_id_user: {
136
+ type: mongoose_1.default.Schema.Types.ObjectId,
137
+ ref: 'auth_user_mst',
138
+ comment: "User who has access"
139
+ },
140
+ admepm_entity_id_syen: {
141
+ type: mongoose_1.default.Schema.Types.ObjectId,
142
+ ref: 'core_system_entity',
143
+ comment: "Entity context"
144
+ },
145
+ admepm_access_pass_to: {
146
+ type: mongoose_1.default.Schema.Types.ObjectId,
147
+ ref: 'admission_rte_details',
148
+ comment: "RTE details record access"
149
+ },
150
+ admepm_is_owner: {
151
+ type: Boolean,
152
+ default: true,
153
+ comment: "Is owner of record"
154
+ },
155
+ admepm_can_edit: {
156
+ type: Boolean,
157
+ default: true,
158
+ comment: "Can edit permission"
159
+ },
160
+ admepm_can_view: {
161
+ type: Boolean,
162
+ default: true,
163
+ comment: "Can view permission"
164
+ },
165
+ admepm_isactive: {
166
+ type: Boolean,
167
+ default: true,
168
+ comment: "Is access active"
169
+ },
170
+ admepm_actions_allowed: {
171
+ type: Object,
172
+ default: {},
173
+ comment: "Specific actions allowed"
174
+ }
175
+ }, { collection: 'admission_entity_access_pass_management_admrte' });
176
+ var CAdmissionEntityAccessPassManagementAdmrte = mongoose_1.default.model("admission_entity_access_pass_management_admrte", admission_entity_access_pass_management_admrte);
177
+ exports.CAdmissionEntityAccessPassManagementAdmrte = CAdmissionEntityAccessPassManagementAdmrte;
@@ -0,0 +1,45 @@
1
+ import mongoose from "mongoose";
2
+ declare const CAdmissionVitalInformation: mongoose.Model<{
3
+ [x: string]: unknown;
4
+ }, {}, {}, {}, mongoose.Document<unknown, {}, {
5
+ [x: string]: unknown;
6
+ }, {}> & {
7
+ [x: string]: unknown;
8
+ } & Required<{
9
+ _id: unknown;
10
+ }> & {
11
+ __v: number;
12
+ }, mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, {
13
+ [x: string]: unknown;
14
+ }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
15
+ [x: string]: unknown;
16
+ }>, {}> & mongoose.FlatRecord<{
17
+ [x: string]: unknown;
18
+ }> & Required<{
19
+ _id: unknown;
20
+ }> & {
21
+ __v: number;
22
+ }>>;
23
+ declare const CAdmissionEntityAccessPassManagementAdmvi: mongoose.Model<{
24
+ [x: string]: unknown;
25
+ }, {}, {}, {}, mongoose.Document<unknown, {}, {
26
+ [x: string]: unknown;
27
+ }, {}> & {
28
+ [x: string]: unknown;
29
+ } & Required<{
30
+ _id: unknown;
31
+ }> & {
32
+ __v: number;
33
+ }, mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, {
34
+ [x: string]: unknown;
35
+ }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
36
+ [x: string]: unknown;
37
+ }>, {}> & mongoose.FlatRecord<{
38
+ [x: string]: unknown;
39
+ }> & Required<{
40
+ _id: unknown;
41
+ }> & {
42
+ __v: number;
43
+ }>>;
44
+ export { CAdmissionEntityAccessPassManagementAdmvi, // collection
45
+ CAdmissionVitalInformation };
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CAdmissionVitalInformation = exports.CAdmissionEntityAccessPassManagementAdmvi = void 0;
4
+ var mongoose_1 = require("mongoose");
5
+ /**
6
+ * Admission Vital Information Schema
7
+ *
8
+ * Purpose: Store flexible vital information for admission applications with timestamps
9
+ * Prefix: admvi_ (admission vital information)
10
+ *
11
+ * BUSINESS LOGIC:
12
+ * 1. Multiple vital information entries per admission (height, weight, blood pressure, etc.)
13
+ * 2. Flexible structure - vital types configurable via general master
14
+ * 3. Each entry has capture date and user for audit trail
15
+ * 4. Supports various units of measurement (configurable via general master)
16
+ * 5. Entity-based access control
17
+ */
18
+ /* SCHEMA START */
19
+ var admission_vital_information = new mongoose_1.Schema({
20
+ admvi_admission_id_admap: {
21
+ type: mongoose_1.default.Schema.Types.ObjectId,
22
+ ref: 'admission_application_main',
23
+ required: true,
24
+ comment: "Reference to admission application"
25
+ },
26
+ admvi_vital_type_id_sygms: {
27
+ type: mongoose_1.default.Schema.Types.ObjectId,
28
+ ref: 'core_general_master',
29
+ required: true,
30
+ comment: "Vital information type (Height, Weight, Blood Pressure, etc.) - Reference to core_general_master with type 'VITAL_INFORMATION_TYPE'"
31
+ },
32
+ admvi_value: {
33
+ type: String,
34
+ maxlength: 100,
35
+ trim: true,
36
+ required: true,
37
+ comment: "Vital information value (stored as string to support various data types)"
38
+ },
39
+ admvi_unit_id_sygms: {
40
+ type: mongoose_1.default.Schema.Types.ObjectId,
41
+ ref: 'core_general_master',
42
+ comment: "Unit of measurement (cm, kg, mmHg, bpm, etc.) - Reference to core_general_master with type 'VITAL_INFORMATION_UNIT'"
43
+ },
44
+ admvi_captured_date: {
45
+ type: Date,
46
+ required: true,
47
+ default: Date.now,
48
+ comment: "Date when vital information was captured"
49
+ },
50
+ admvi_captured_by_user: {
51
+ type: mongoose_1.default.Schema.Types.ObjectId,
52
+ ref: 'auth_user_mst',
53
+ comment: "User who captured the vital information"
54
+ },
55
+ admvi_remarks: {
56
+ type: String,
57
+ maxlength: 500,
58
+ trim: true,
59
+ comment: "Additional remarks/notes about the vital information"
60
+ },
61
+ admvi_isactive: {
62
+ type: Boolean,
63
+ default: true,
64
+ comment: "Is active"
65
+ }
66
+ }, {
67
+ collection: 'admission_vital_information'
68
+ });
69
+ // Indexes for better performance
70
+ admission_vital_information.index({ admvi_admission_id_admap: 1 });
71
+ admission_vital_information.index({ admvi_vital_type_id_sygms: 1 });
72
+ admission_vital_information.index({ admvi_captured_date: 1 });
73
+ admission_vital_information.index({ admvi_isactive: 1 });
74
+ var CAdmissionVitalInformation = mongoose_1.default.model("admission_vital_information", admission_vital_information);
75
+ exports.CAdmissionVitalInformation = CAdmissionVitalInformation;
76
+ // Access pass for entity-based access control
77
+ var admission_entity_access_pass_management_admvi = new mongoose_1.Schema({
78
+ admepm_user_id_user: {
79
+ type: mongoose_1.default.Schema.Types.ObjectId,
80
+ ref: 'auth_user_mst',
81
+ comment: "User who has access"
82
+ },
83
+ admepm_entity_id_syen: {
84
+ type: mongoose_1.default.Schema.Types.ObjectId,
85
+ ref: 'core_system_entity',
86
+ comment: "Entity context"
87
+ },
88
+ admepm_access_pass_to: {
89
+ type: mongoose_1.default.Schema.Types.ObjectId,
90
+ ref: 'admission_vital_information',
91
+ comment: "Vital information record access"
92
+ },
93
+ admepm_is_owner: {
94
+ type: Boolean,
95
+ default: true,
96
+ comment: "Is owner of record"
97
+ },
98
+ admepm_can_edit: {
99
+ type: Boolean,
100
+ default: true,
101
+ comment: "Can edit permission"
102
+ },
103
+ admepm_can_view: {
104
+ type: Boolean,
105
+ default: true,
106
+ comment: "Can view permission"
107
+ },
108
+ admepm_isactive: {
109
+ type: Boolean,
110
+ default: true,
111
+ comment: "Is access active"
112
+ },
113
+ admepm_actions_allowed: {
114
+ type: Object,
115
+ default: {},
116
+ comment: "Specific actions allowed"
117
+ }
118
+ }, { collection: 'admission_entity_access_pass_management_admvi' });
119
+ var CAdmissionEntityAccessPassManagementAdmvi = mongoose_1.default.model("admission_entity_access_pass_management_admvi", admission_entity_access_pass_management_admvi);
120
+ exports.CAdmissionEntityAccessPassManagementAdmvi = CAdmissionEntityAccessPassManagementAdmvi;
@@ -5,3 +5,5 @@ export * from "./admission_document_uploads";
5
5
  export * from "./admission_contact_addresses";
6
6
  export * from "./admission_family_members";
7
7
  export * from "./admission_fee_snapshot";
8
+ export * from "./admission_rte_details";
9
+ export * from "./admission_vital_information";
@@ -21,3 +21,5 @@ __exportStar(require("./admission_document_uploads"), exports);
21
21
  __exportStar(require("./admission_contact_addresses"), exports);
22
22
  __exportStar(require("./admission_family_members"), exports);
23
23
  __exportStar(require("./admission_fee_snapshot"), exports);
24
+ __exportStar(require("./admission_rte_details"), exports);
25
+ __exportStar(require("./admission_vital_information"), exports);
@@ -75,5 +75,16 @@ var auth_user_mst = new mongoose_1.Schema({
75
75
  type: Boolean
76
76
  }
77
77
  }, { collection: 'auth_user_mst' });
78
+ // Indexes for performance optimization
79
+ // Compound index for user listing queries (sorting and filtering)
80
+ auth_user_mst.index({ user_fullname: 1, user_username: 1 });
81
+ // Index for email search queries
82
+ auth_user_mst.index({ user_emailid: 1 });
83
+ // Index for username search (already unique, but explicit index for clarity)
84
+ auth_user_mst.index({ user_username: 1 });
85
+ // Index for fullname search
86
+ auth_user_mst.index({ user_fullname: 1 });
87
+ // Index for active user filtering
88
+ auth_user_mst.index({ user_isactive: 1 });
78
89
  var CUser = mongoose_1.default.model('auth_user_mst', auth_user_mst);
79
90
  exports.CUser = CUser;
@@ -39,5 +39,11 @@ var core_department = new mongoose_1.Schema({
39
39
  required: true
40
40
  }
41
41
  }, { collection: 'core_department' });
42
+ // Indexes for performance optimization
43
+ // Index for entity-based department lookups
44
+ core_department.index({ sydept_entity_id_syen: 1, sydept_isactive: 1 });
45
+ // Index for active department filtering
46
+ core_department.index({ sydept_isactive: 1 });
47
+ // Note: _id is automatically indexed by MongoDB
42
48
  var CCoreSydept = mongoose_1.default.model("core_department", core_department);
43
49
  exports.CCoreSydept = CCoreSydept;
@@ -49,5 +49,11 @@ var core_designation = new mongoose_1.Schema({
49
49
  required: true
50
50
  }
51
51
  }, { collection: 'core_designation' });
52
+ // Indexes for performance optimization
53
+ // Index for entity-based designation lookups
54
+ core_designation.index({ desg_entity_id_syen: 1, sydsg_isactive: 1 });
55
+ // Index for active designation filtering
56
+ core_designation.index({ sydsg_isactive: 1 });
57
+ // Note: _id is automatically indexed by MongoDB
52
58
  var CCoreSydsg = mongoose_1.default.model("core_designation", core_designation);
53
59
  exports.CCoreSydsg = CCoreSydsg;
@@ -49,5 +49,16 @@ var core_entity_mapping = new mongoose_1.Schema({
49
49
  default: true
50
50
  },
51
51
  }, { collection: 'core_entity_mapping' });
52
+ // Indexes for performance optimization
53
+ // Compound index for user listing queries with entity filtering (most common query pattern)
54
+ core_entity_mapping.index({ syenm_id_user: 1, syenm_entity_id_syen: 1, syenm_isactive: 1 });
55
+ // Index for user-based lookups
56
+ core_entity_mapping.index({ syenm_id_user: 1, syenm_isactive: 1 });
57
+ // Index for entity-based lookups
58
+ core_entity_mapping.index({ syenm_entity_id_syen: 1, syenm_isactive: 1 });
59
+ // Index for role lookups
60
+ core_entity_mapping.index({ syenm_role_id_syusrol: 1 });
61
+ // Index for active mappings only
62
+ core_entity_mapping.index({ syenm_isactive: 1 });
52
63
  var CCoreSyenm = mongoose_1.default.model("core_entity_mapping", core_entity_mapping);
53
64
  exports.CCoreSyenm = CCoreSyenm;
@@ -26,5 +26,11 @@ var core_user_role = new mongoose_1.Schema({
26
26
  default: true
27
27
  }
28
28
  }, { collection: 'core_user_role' });
29
+ // Indexes for performance optimization
30
+ // Index for active role filtering
31
+ core_user_role.index({ syusrol_isactive: 1 });
32
+ // Index for entity-based role lookups
33
+ core_user_role.index({ syusrol_role_entity_id_syen: 1, syusrol_isactive: 1 });
34
+ // Note: _id is automatically indexed by MongoDB
29
35
  var CCoreUserRole = mongoose_1.default.model("core_user_role", core_user_role);
30
36
  exports.CCoreUserRole = CCoreUserRole;
@@ -0,0 +1,8 @@
1
+ import { ICoreWorkflowApproverRules } from "cloud-ide-lms-model";
2
+ import mongoose from "mongoose";
3
+ declare const CCoreWorkflowApproverRules: mongoose.Model<ICoreWorkflowApproverRules, {}, {}, {}, mongoose.Document<unknown, {}, ICoreWorkflowApproverRules, {}> & ICoreWorkflowApproverRules & Required<{
4
+ _id: string;
5
+ }> & {
6
+ __v: number;
7
+ }, any>;
8
+ export { CCoreWorkflowApproverRules };
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CCoreWorkflowApproverRules = void 0;
4
+ var mongoose_1 = require("mongoose");
5
+ /* SCHEMA START */
6
+ var core_workflow_approver_rules = new mongoose_1.Schema({
7
+ wfar_workflow_config_id_wfcfg: {
8
+ type: mongoose_1.default.Schema.Types.ObjectId,
9
+ ref: "core_workflow_config",
10
+ required: true,
11
+ comment: "Workflow config reference"
12
+ },
13
+ wfar_approval_group_id: {
14
+ type: String,
15
+ maxlength: 50,
16
+ trim: true,
17
+ comment: "Group identifier for complex approval logic (e.g., 'group_a', 'group_b')"
18
+ },
19
+ wfar_group_approval_type_id_sygms: {
20
+ type: mongoose_1.default.Schema.Types.ObjectId,
21
+ ref: "core_general_master",
22
+ comment: "Approval type for this group (ANY, ALL, SEQUENTIAL)"
23
+ },
24
+ wfar_rule_type_id_sygms: {
25
+ type: mongoose_1.default.Schema.Types.ObjectId,
26
+ ref: "core_general_master",
27
+ required: true,
28
+ comment: "Primary rule type (from WORKFLOW_RULE_TYPE)"
29
+ },
30
+ wfar_rule_value: {
31
+ type: String,
32
+ maxlength: 200,
33
+ trim: true,
34
+ comment: "ID or code based on rule_type"
35
+ },
36
+ wfar_rule_operator_id_sygms: {
37
+ type: mongoose_1.default.Schema.Types.ObjectId,
38
+ ref: "core_general_master",
39
+ required: true,
40
+ comment: "Operator (from WORKFLOW_RULE_OPERATOR: include, exclude)"
41
+ },
42
+ wfar_combined_filters: {
43
+ type: Object,
44
+ comment: "Combined filters for targeted approver selection (designation + department, etc.)"
45
+ },
46
+ wfar_priority: {
47
+ type: Number,
48
+ default: 1,
49
+ comment: "Rule priority (lower = higher priority)"
50
+ },
51
+ wfar_condition: {
52
+ type: Object,
53
+ comment: "JSON condition for conditional routing"
54
+ },
55
+ wfar_is_optional: {
56
+ type: Boolean,
57
+ default: false,
58
+ comment: "Is this an optional approver group"
59
+ },
60
+ wfar_min_approvals: {
61
+ type: Number,
62
+ comment: "Minimum approvals required from this group (for optional groups)"
63
+ },
64
+ wfar_valid_from_date: {
65
+ type: Date,
66
+ comment: "Rule valid from date (for time-based approver assignment)"
67
+ },
68
+ wfar_valid_to_date: {
69
+ type: Date,
70
+ comment: "Rule valid to date (for time-based approver assignment)"
71
+ },
72
+ wfar_isactive: {
73
+ type: Boolean,
74
+ default: true,
75
+ comment: "Rule is active"
76
+ }
77
+ }, { collection: 'core_workflow_approver_rules' });
78
+ // Indexes for performance optimization
79
+ core_workflow_approver_rules.index({ wfar_workflow_config_id_wfcfg: 1, wfar_isactive: 1 });
80
+ core_workflow_approver_rules.index({ wfar_approval_group_id: 1 });
81
+ core_workflow_approver_rules.index({ wfar_rule_type_id_sygms: 1, wfar_rule_value: 1 });
82
+ var CCoreWorkflowApproverRules = mongoose_1.default.model("core_workflow_approver_rules", core_workflow_approver_rules);
83
+ exports.CCoreWorkflowApproverRules = CCoreWorkflowApproverRules;
@@ -0,0 +1,8 @@
1
+ import { ICoreWorkflowConfig } from "cloud-ide-lms-model";
2
+ import mongoose from "mongoose";
3
+ declare const CCoreWorkflowConfig: mongoose.Model<ICoreWorkflowConfig, {}, {}, {}, mongoose.Document<unknown, {}, ICoreWorkflowConfig, {}> & ICoreWorkflowConfig & Required<{
4
+ _id: string;
5
+ }> & {
6
+ __v: number;
7
+ }, any>;
8
+ export { CCoreWorkflowConfig };
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CCoreWorkflowConfig = void 0;
4
+ var mongoose_1 = require("mongoose");
5
+ /* SCHEMA START */
6
+ var core_workflow_config = new mongoose_1.Schema({
7
+ wfcfg_workflow_id_wfrg: {
8
+ type: mongoose_1.default.Schema.Types.ObjectId,
9
+ ref: "core_workflow_registry",
10
+ required: true,
11
+ comment: "Workflow reference"
12
+ },
13
+ wfcfg_step_number: {
14
+ type: Number,
15
+ required: true,
16
+ comment: "Step sequence (1, 2, 3...)"
17
+ },
18
+ wfcfg_step_name: {
19
+ type: String,
20
+ required: true,
21
+ maxlength: 100,
22
+ trim: true,
23
+ comment: "Step display name"
24
+ },
25
+ wfcfg_approval_type_id_sygms: {
26
+ type: mongoose_1.default.Schema.Types.ObjectId,
27
+ ref: "core_general_master",
28
+ comment: "Approval logic type (from WORKFLOW_APPROVAL_TYPE)"
29
+ },
30
+ wfcfg_approval_logic: {
31
+ type: Object,
32
+ comment: "Complex approval logic configuration (for group-based approvals)"
33
+ },
34
+ wfcfg_allow_edit: {
35
+ type: Boolean,
36
+ default: false,
37
+ comment: "Can approver edit component values"
38
+ },
39
+ wfcfg_allow_reject: {
40
+ type: Boolean,
41
+ default: true,
42
+ comment: "Can approver reject"
43
+ },
44
+ wfcfg_allow_request_changes: {
45
+ type: Boolean,
46
+ default: true,
47
+ comment: "Can approver request changes"
48
+ },
49
+ wfcfg_timeout_hours: {
50
+ type: Number,
51
+ comment: "Auto-escalation timeout in hours"
52
+ },
53
+ wfcfg_escalation_step: {
54
+ type: Number,
55
+ comment: "Step to escalate to if timeout"
56
+ },
57
+ wfcfg_use_fallback: {
58
+ type: Boolean,
59
+ default: false,
60
+ comment: "Use fallback rules if no rules match"
61
+ },
62
+ wfcfg_valid_from_date: {
63
+ type: Date,
64
+ comment: "Step valid from date (for time-based rules)"
65
+ },
66
+ wfcfg_valid_to_date: {
67
+ type: Date,
68
+ comment: "Step valid to date (for time-based rules)"
69
+ },
70
+ wfcfg_isactive: {
71
+ type: Boolean,
72
+ default: true,
73
+ comment: "Step is active"
74
+ },
75
+ wfcfg_fallback_user_id_auth: {
76
+ type: mongoose_1.default.Schema.Types.ObjectId,
77
+ ref: "auth_user_mst",
78
+ comment: "Fallback approver user"
79
+ },
80
+ wfcfg_fallback_designation_id: {
81
+ type: mongoose_1.default.Schema.Types.ObjectId,
82
+ comment: "Fallback approver designation"
83
+ },
84
+ wfcfg_fallback_department_id: {
85
+ type: mongoose_1.default.Schema.Types.ObjectId,
86
+ comment: "Fallback approver department"
87
+ },
88
+ wfcfg_fallback_role_id: {
89
+ type: mongoose_1.default.Schema.Types.ObjectId,
90
+ ref: "core_user_role",
91
+ comment: "Fallback approver role"
92
+ },
93
+ wfcfg_notify_all_approvers: {
94
+ type: Boolean,
95
+ default: true,
96
+ comment: "Notify all matching approvers"
97
+ }
98
+ }, { collection: 'core_workflow_config' });
99
+ // Indexes for performance optimization
100
+ core_workflow_config.index({ wfcfg_workflow_id_wfrg: 1, wfcfg_step_number: 1 });
101
+ core_workflow_config.index({ wfcfg_workflow_id_wfrg: 1, wfcfg_isactive: 1 });
102
+ var CCoreWorkflowConfig = mongoose_1.default.model("core_workflow_config", core_workflow_config);
103
+ exports.CCoreWorkflowConfig = CCoreWorkflowConfig;