@kipicore/dbcore 1.1.596 → 1.1.598

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 (82) hide show
  1. package/dist/constants/app.d.ts +66 -1
  2. package/dist/constants/app.js +82 -5
  3. package/dist/constants/errorMessages.d.ts +3 -0
  4. package/dist/constants/errorMessages.js +5 -1
  5. package/dist/constants/successMessages.d.ts +4 -0
  6. package/dist/constants/successMessages.js +6 -1
  7. package/dist/db/psql/migrations/20260618075917-refund_collection.d.ts +2 -0
  8. package/dist/db/psql/migrations/20260618075917-refund_collection.js +198 -0
  9. package/dist/db/psql/migrations/20260618092516-rename_storage_timestamps_to_snake_case.d.ts +2 -0
  10. package/dist/db/psql/migrations/20260618092516-rename_storage_timestamps_to_snake_case.js +46 -0
  11. package/dist/db/psql/migrations/20260619043000-add_rms_phase4_5_models.d.ts +2 -0
  12. package/dist/db/psql/migrations/20260619043000-add_rms_phase4_5_models.js +100 -0
  13. package/dist/interfaces/index.d.ts +10 -0
  14. package/dist/interfaces/index.js +10 -0
  15. package/dist/interfaces/refundInterface.d.ts +14 -0
  16. package/dist/interfaces/refundInterface.js +2 -0
  17. package/dist/interfaces/rmsAmcContractInterface.d.ts +25 -0
  18. package/dist/interfaces/rmsAmcContractInterface.js +2 -0
  19. package/dist/interfaces/rmsBudgetInterface.d.ts +13 -0
  20. package/dist/interfaces/rmsBudgetInterface.js +2 -0
  21. package/dist/interfaces/rmsDigitalResourceAccessInterface.d.ts +11 -0
  22. package/dist/interfaces/rmsDigitalResourceAccessInterface.js +2 -0
  23. package/dist/interfaces/rmsDigitalResourceInterface.d.ts +14 -0
  24. package/dist/interfaces/rmsDigitalResourceInterface.js +2 -0
  25. package/dist/interfaces/rmsExpenseEntryInterface.d.ts +14 -0
  26. package/dist/interfaces/rmsExpenseEntryInterface.js +2 -0
  27. package/dist/interfaces/rmsFacilityBookingInterface.d.ts +15 -0
  28. package/dist/interfaces/rmsFacilityBookingInterface.js +2 -0
  29. package/dist/interfaces/rmsFacilityInterface.d.ts +12 -0
  30. package/dist/interfaces/rmsFacilityInterface.js +2 -0
  31. package/dist/interfaces/rmsMaintenanceActivityInterface.d.ts +12 -0
  32. package/dist/interfaces/rmsMaintenanceActivityInterface.js +2 -0
  33. package/dist/interfaces/rmsMaintenanceTicketInterface.d.ts +18 -0
  34. package/dist/interfaces/rmsMaintenanceTicketInterface.js +2 -0
  35. package/dist/models/mongodb/index.d.ts +3 -0
  36. package/dist/models/mongodb/index.js +7 -1
  37. package/dist/models/mongodb/rmsAmcContractModel.d.ts +4 -0
  38. package/dist/models/mongodb/rmsAmcContractModel.js +105 -0
  39. package/dist/models/mongodb/rmsDigitalResourceAccessModel.d.ts +4 -0
  40. package/dist/models/mongodb/rmsDigitalResourceAccessModel.js +71 -0
  41. package/dist/models/mongodb/rmsDigitalResourceModel.d.ts +4 -0
  42. package/dist/models/mongodb/rmsDigitalResourceModel.js +81 -0
  43. package/dist/models/psql/index.d.ts +7 -0
  44. package/dist/models/psql/index.js +15 -1
  45. package/dist/models/psql/refundModel.d.ts +24 -0
  46. package/dist/models/psql/refundModel.js +95 -0
  47. package/dist/models/psql/rmsBudgetModel.d.ts +23 -0
  48. package/dist/models/psql/rmsBudgetModel.js +35 -0
  49. package/dist/models/psql/rmsExpenseEntryModel.d.ts +24 -0
  50. package/dist/models/psql/rmsExpenseEntryModel.js +37 -0
  51. package/dist/models/psql/rmsFacilityBookingModel.d.ts +25 -0
  52. package/dist/models/psql/rmsFacilityBookingModel.js +41 -0
  53. package/dist/models/psql/rmsFacilityModel.d.ts +22 -0
  54. package/dist/models/psql/rmsFacilityModel.js +33 -0
  55. package/dist/models/psql/rmsMaintenanceActivityModel.d.ts +22 -0
  56. package/dist/models/psql/rmsMaintenanceActivityModel.js +36 -0
  57. package/dist/models/psql/rmsMaintenanceTicketModel.d.ts +28 -0
  58. package/dist/models/psql/rmsMaintenanceTicketModel.js +46 -0
  59. package/dist/types/index.d.ts +11 -1
  60. package/dist/types/index.js +11 -1
  61. package/dist/types/refundType.d.ts +3 -0
  62. package/dist/types/refundType.js +12 -0
  63. package/dist/types/rmsAmcContractType.d.ts +2 -0
  64. package/dist/types/rmsAmcContractType.js +2 -0
  65. package/dist/types/rmsAuditLogType.d.ts +1 -2
  66. package/dist/types/rmsBudgetType.d.ts +3 -0
  67. package/dist/types/rmsBudgetType.js +2 -0
  68. package/dist/types/rmsDigitalResourceAccessType.d.ts +2 -0
  69. package/dist/types/rmsDigitalResourceAccessType.js +2 -0
  70. package/dist/types/rmsDigitalResourceType.d.ts +2 -0
  71. package/dist/types/rmsDigitalResourceType.js +2 -0
  72. package/dist/types/rmsExpenseEntryType.d.ts +3 -0
  73. package/dist/types/rmsExpenseEntryType.js +2 -0
  74. package/dist/types/rmsFacilityBookingType.d.ts +3 -0
  75. package/dist/types/rmsFacilityBookingType.js +2 -0
  76. package/dist/types/rmsFacilityType.d.ts +3 -0
  77. package/dist/types/rmsFacilityType.js +2 -0
  78. package/dist/types/rmsMaintenanceActivityType.d.ts +3 -0
  79. package/dist/types/rmsMaintenanceActivityType.js +2 -0
  80. package/dist/types/rmsMaintenanceTicketType.d.ts +3 -0
  81. package/dist/types/rmsMaintenanceTicketType.js +2 -0
  82. package/package.json +1 -1
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const mongoose_1 = __importStar(require("mongoose"));
37
+ const app_1 = require("../../constants/app");
38
+ const RmsDigitalResourceSchema = new mongoose_1.Schema({
39
+ instituteId: {
40
+ type: String,
41
+ required: true,
42
+ },
43
+ title: {
44
+ type: String,
45
+ required: true,
46
+ },
47
+ type: {
48
+ type: String,
49
+ required: false,
50
+ },
51
+ authorOrPublisher: {
52
+ type: String,
53
+ required: false,
54
+ },
55
+ fileStorageId: {
56
+ type: String,
57
+ required: false,
58
+ },
59
+ url: {
60
+ type: String,
61
+ required: false,
62
+ },
63
+ status: {
64
+ type: String,
65
+ required: true,
66
+ enum: Object.values(app_1.RMS_DIGITAL_STATUS),
67
+ default: app_1.RMS_DIGITAL_STATUS.ACTIVE,
68
+ },
69
+ expiryDate: {
70
+ type: Date,
71
+ required: false,
72
+ },
73
+ createdBy: { type: String },
74
+ updatedBy: { type: String },
75
+ deletedBy: { type: String },
76
+ }, {
77
+ timestamps: true,
78
+ versionKey: false,
79
+ });
80
+ const RmsDigitalResourceModel = mongoose_1.default.model('rms_digital_resource', RmsDigitalResourceSchema);
81
+ exports.default = RmsDigitalResourceModel;
@@ -159,3 +159,10 @@ export { default as UserHasGraceMarksModel } from './userHasGraceMarksModel';
159
159
  export { default as RmsStorageRackModel } from './rmsStorageRackModel';
160
160
  export { default as RmsStorageSlotModel } from './rmsStorageSlotModel';
161
161
  export { default as RmsAssetTransactionModel } from './rmsAssetTransactionModel';
162
+ export { default as RefundCollectionModule } from './refundModel';
163
+ export { default as RmsMaintenanceTicketModel } from './rmsMaintenanceTicketModel';
164
+ export { default as RmsMaintenanceActivityModel } from './rmsMaintenanceActivityModel';
165
+ export { default as RmsFacilityModel } from './rmsFacilityModel';
166
+ export { default as RmsFacilityBookingModel } from './rmsFacilityBookingModel';
167
+ export { default as RmsBudgetModel } from './rmsBudgetModel';
168
+ export { default as RmsExpenseEntryModel } from './rmsExpenseEntryModel';
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ProjectAssessmentOptionModel = exports.ProductModel = exports.PincodeModel = exports.PdcHistoryModel = exports.PdcChequeModel = exports.OfferModel = exports.ModuleModel = exports.ModuleFeatureModel = exports.MasterLeaveModel = exports.LectureModel = exports.LectureHistoryModel = exports.InventoryModel = exports.InventoryHistoryModel = exports.InstituteSubscriptionPlanModel = exports.InstituteModel = exports.InstituteEntityTypeModel = exports.InstituteEntityModel = exports.HomeWorkModel = exports.GreetingsModel = exports.FloorManagementModel = exports.FileStorageModel = exports.FeeReminderSettingModel = exports.FeeReminderModel = exports.FeatureActionModel = exports.FacilityModel = exports.EntityGroupModel = exports.DriverModel = exports.CourseModel = exports.CourseHasVisitorsModel = exports.CountryModel = exports.ContactFeedBackModel = exports.CoinPurchaseOfferModel = exports.CloudStorageModel = exports.ClassRoomModel = exports.CityModel = exports.CategoriesModel = exports.BookAssessmentDateModel = exports.BatchSubjectProjectAssessmentModel = exports.BatchSubjectBookAssessmentModel = exports.BatchModel = exports.BannerModel = exports.BankAccountDetailsModel = exports.AreaModel = exports.AnnouncementModel = exports.AccountHasReceiptDetailsModel = exports.AcademicCalendarModel = exports.SubCategoriesModel = exports.Sequelize = exports.db = exports.sequelize = void 0;
7
7
  exports.StudentLeaveRequestModel = exports.CloneListModel = exports.IncomeExpenseModel = exports.MaintenanceModel = exports.WorkOffDaysModel = exports.EntityWiseCalendarModel = exports.CampusModel = exports.LostFoundItemModel = exports.WorkingShiftModel = exports.WorkingDayModel = exports.WalletModel = exports.WalletHistoryModel = exports.VendorManagementModel = exports.VehicleModel = exports.UserRequiredStepsModel = exports.UserProjectAssessmentOptionModel = exports.UserPayoutModel = exports.UserModel = exports.UserLeaveRequestModel = exports.UserHasSubjectFeeModel = exports.UserHasStorageModel = exports.UserHasRollNumberModel = exports.UserHasRoleModel = exports.UserHasParentModel = exports.UserHasOfferModel = exports.UserHasLeaveModel = exports.UserHasLeaveHistoryModel = exports.UserHasInventoryModel = exports.UserHasInventoryHistoryModel = exports.UserHasHomeWorkModel = exports.UserHasFileModel = exports.UserHasDeviceModel = exports.UserHasCourseModel = exports.UserHasBatchModel = exports.UserHasAnnouncementModel = exports.UserBookAssessmentModel = exports.TypeManagementModel = exports.TripModel = exports.TokenModel = exports.ToDoModel = exports.TestimonialModel = exports.SyllabusModel = exports.SubjectHasPayFeeHistoryModel = exports.SubjectHasFeeModel = exports.StateModel = exports.SlotModel = exports.SendNotificationModel = exports.SchoolOfferModel = exports.RulesRegulationModel = exports.RoleModel = void 0;
8
8
  exports.RmsPurchaseOrderItemModel = exports.RmsPurchaseOrderModel = exports.RmsPurchaseRequestItemModel = exports.RmsPurchaseRequestModel = exports.RmsVendorDocumentModel = exports.RmsVendorModel = exports.RmsStockTransactionModel = exports.RmsStockModel = exports.RmsResourceModel = exports.RmsLocationModel = exports.RmsDepartmentModel = exports.DynamicVariableLabelModel = exports.DynamicVariableModel = exports.CertificateRequestModel = exports.FeeSubmissionTrackModel = exports.UserHasFeeSubmissionModel = exports.AssignSubjectModel = exports.InstitutePartnersModel = exports.InstituteOwnershipHistoryModel = exports.UserHasPenaltyHistoryModel = exports.PastYearRecordModel = exports.PayoutTransactionHistoryModel = exports.AdditionalPayoutModel = exports.LoanEmiModel = exports.UserLoanModel = exports.NoticeboardModel = exports.UserPermissionModel = exports.RoleManagementModel = exports.PermissionModel = exports.DesignationModel = exports.AdditionalPayoutTypeModel = exports.VisitorBookModel = exports.PostalDispatchModel = exports.CallRegisterModel = exports.UserHasOfferAndDiscountModel = exports.UserAcceptedTermsAndCondition = exports.SubjectInternalMarkModel = exports.InternalMarkModel = exports.TermsAndConditionModel = exports.FeeType1Model = exports.StudentFeeTermsModel = exports.UserHasPenaltyModel = exports.PenaltyModel = exports.ClassRoomCollectionModel = exports.ClassRoomEventModel = exports.StudentFeeTypeCollectionModel = exports.SchoolFeeTermsModel = exports.StudentFeeHistoryModel = exports.StudentFeeCollectionModel = exports.UserDirectoryModel = void 0;
9
- exports.RmsAssetTransactionModel = exports.RmsStorageSlotModel = exports.RmsStorageRackModel = exports.UserHasGraceMarksModel = exports.GraceMarksModel = exports.RmsAssetModel = exports.RmsGrnItemTransactionModel = exports.RmsGrnItemModel = exports.RmsGrnModel = void 0;
9
+ exports.RmsExpenseEntryModel = exports.RmsBudgetModel = exports.RmsFacilityBookingModel = exports.RmsFacilityModel = exports.RmsMaintenanceActivityModel = exports.RmsMaintenanceTicketModel = exports.RefundCollectionModule = exports.RmsAssetTransactionModel = exports.RmsStorageSlotModel = exports.RmsStorageRackModel = exports.UserHasGraceMarksModel = exports.GraceMarksModel = exports.RmsAssetModel = exports.RmsGrnItemTransactionModel = exports.RmsGrnItemModel = exports.RmsGrnModel = void 0;
10
10
  const sequelize_1 = require("sequelize");
11
11
  Object.defineProperty(exports, "Sequelize", { enumerable: true, get: function () { return sequelize_1.Sequelize; } });
12
12
  const postgresConfig = require('../../configs/postgresConfig');
@@ -414,3 +414,17 @@ var rmsStorageSlotModel_1 = require("./rmsStorageSlotModel");
414
414
  Object.defineProperty(exports, "RmsStorageSlotModel", { enumerable: true, get: function () { return __importDefault(rmsStorageSlotModel_1).default; } });
415
415
  var rmsAssetTransactionModel_1 = require("./rmsAssetTransactionModel");
416
416
  Object.defineProperty(exports, "RmsAssetTransactionModel", { enumerable: true, get: function () { return __importDefault(rmsAssetTransactionModel_1).default; } });
417
+ var refundModel_1 = require("./refundModel");
418
+ Object.defineProperty(exports, "RefundCollectionModule", { enumerable: true, get: function () { return __importDefault(refundModel_1).default; } });
419
+ var rmsMaintenanceTicketModel_1 = require("./rmsMaintenanceTicketModel");
420
+ Object.defineProperty(exports, "RmsMaintenanceTicketModel", { enumerable: true, get: function () { return __importDefault(rmsMaintenanceTicketModel_1).default; } });
421
+ var rmsMaintenanceActivityModel_1 = require("./rmsMaintenanceActivityModel");
422
+ Object.defineProperty(exports, "RmsMaintenanceActivityModel", { enumerable: true, get: function () { return __importDefault(rmsMaintenanceActivityModel_1).default; } });
423
+ var rmsFacilityModel_1 = require("./rmsFacilityModel");
424
+ Object.defineProperty(exports, "RmsFacilityModel", { enumerable: true, get: function () { return __importDefault(rmsFacilityModel_1).default; } });
425
+ var rmsFacilityBookingModel_1 = require("./rmsFacilityBookingModel");
426
+ Object.defineProperty(exports, "RmsFacilityBookingModel", { enumerable: true, get: function () { return __importDefault(rmsFacilityBookingModel_1).default; } });
427
+ var rmsBudgetModel_1 = require("./rmsBudgetModel");
428
+ Object.defineProperty(exports, "RmsBudgetModel", { enumerable: true, get: function () { return __importDefault(rmsBudgetModel_1).default; } });
429
+ var rmsExpenseEntryModel_1 = require("./rmsExpenseEntryModel");
430
+ Object.defineProperty(exports, "RmsExpenseEntryModel", { enumerable: true, get: function () { return __importDefault(rmsExpenseEntryModel_1).default; } });
@@ -0,0 +1,24 @@
1
+ import { Model } from 'sequelize';
2
+ import { PAYMENT_TYPE, REFUND_ENTITY_TYPE, REFUND_STATUS } from '../../constants/app';
3
+ import { IRefundCollectionModelAttributes } from '../../interfaces/refundInterface';
4
+ import { TRefundCollectionModelAttributes } from '../../types/refundType';
5
+ declare class RefundCollectionModule extends Model<IRefundCollectionModelAttributes, TRefundCollectionModelAttributes> {
6
+ id: string;
7
+ academicCalendarId: string;
8
+ instituteId: string;
9
+ status: REFUND_STATUS;
10
+ refundEntityType: REFUND_ENTITY_TYPE;
11
+ paymentType: PAYMENT_TYPE;
12
+ refundEntityId: string;
13
+ refundedBy: string;
14
+ refundedAt: Date;
15
+ refundAmount: number;
16
+ createdBy: string;
17
+ updatedBy: string;
18
+ deletedBy: string;
19
+ readonly createdAt: Date;
20
+ readonly deletedAt: string;
21
+ readonly updatedAt: Date;
22
+ static associate(models: any): void;
23
+ }
24
+ export default RefundCollectionModule;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sequelize_1 = require("sequelize");
4
+ const index_1 = require("./index");
5
+ class RefundCollectionModule extends sequelize_1.Model {
6
+ static associate(models) {
7
+ const { InstituteModel, UserModel, AcademicCalendarModel } = models;
8
+ RefundCollectionModule.belongsTo(InstituteModel, {
9
+ foreignKey: { name: 'instituteId', field: 'institute_id' },
10
+ as: 'instituteRefund',
11
+ });
12
+ InstituteModel.hasMany(RefundCollectionModule, {
13
+ foreignKey: 'instituteId',
14
+ as: 'refundInstitute',
15
+ });
16
+ RefundCollectionModule.belongsTo(AcademicCalendarModel, {
17
+ foreignKey: { name: 'academicCalendarId', field: 'academic_calendar_id', allowNull: true },
18
+ as: 'refundAcaCal',
19
+ });
20
+ AcademicCalendarModel.hasMany(RefundCollectionModule, {
21
+ foreignKey: { name: 'academicCalendarId', field: 'academic_calendar_id', allowNull: true },
22
+ as: 'academicCalRefund',
23
+ });
24
+ RefundCollectionModule.belongsTo(UserModel, {
25
+ foreignKey: { name: 'createdBy', allowNull: true, field: 'created_by' },
26
+ as: 'createdByUser',
27
+ });
28
+ RefundCollectionModule.belongsTo(UserModel, {
29
+ foreignKey: { name: 'updatedBy', allowNull: true, field: 'updated_by' },
30
+ as: 'updatedByUser',
31
+ });
32
+ RefundCollectionModule.belongsTo(UserModel, {
33
+ foreignKey: { name: 'deletedBy', allowNull: true, field: 'deleted_by' },
34
+ as: 'deletedByUser',
35
+ });
36
+ }
37
+ }
38
+ RefundCollectionModule.init({
39
+ id: {
40
+ type: sequelize_1.DataTypes.UUID,
41
+ defaultValue: sequelize_1.DataTypes.UUIDV4,
42
+ allowNull: false,
43
+ primaryKey: true,
44
+ },
45
+ instituteId: {
46
+ type: sequelize_1.DataTypes.UUID,
47
+ field: 'institute_id',
48
+ allowNull: true,
49
+ },
50
+ academicCalendarId: {
51
+ type: sequelize_1.DataTypes.UUID,
52
+ field: 'academic_calendar_id',
53
+ allowNull: true,
54
+ },
55
+ status: {
56
+ type: sequelize_1.DataTypes.STRING,
57
+ allowNull: true,
58
+ },
59
+ refundEntityType: {
60
+ type: sequelize_1.DataTypes.STRING,
61
+ allowNull: true,
62
+ field: 'refund_entity_type',
63
+ },
64
+ refundEntityId: {
65
+ type: sequelize_1.DataTypes.UUID,
66
+ allowNull: true,
67
+ field: 'refund_entity_id',
68
+ },
69
+ refundedBy: {
70
+ type: sequelize_1.DataTypes.UUID,
71
+ allowNull: true,
72
+ field: 'refunded_by',
73
+ },
74
+ refundedAt: {
75
+ type: sequelize_1.DataTypes.DATE,
76
+ allowNull: true,
77
+ field: 'refunded_at',
78
+ },
79
+ refundAmount: {
80
+ type: sequelize_1.DataTypes.INTEGER,
81
+ allowNull: true,
82
+ field: 'refund_amount',
83
+ },
84
+ paymentType: {
85
+ type: sequelize_1.DataTypes.STRING,
86
+ allowNull: true,
87
+ field: 'payment_type',
88
+ },
89
+ }, {
90
+ modelName: 'RefundCollectionModule',
91
+ tableName: 'refunds',
92
+ timestamps: true,
93
+ sequelize: index_1.sequelize,
94
+ });
95
+ exports.default = RefundCollectionModule;
@@ -0,0 +1,23 @@
1
+ import { Model } from 'sequelize';
2
+ import { IRmsBudgetAttributes } from '../../interfaces/rmsBudgetInterface';
3
+ import { TRmsBudgetCreationAttributes } from '../../types/rmsBudgetType';
4
+ import { RMS_BUDGET_STATUS } from '../../constants';
5
+ declare class RmsBudgetModel extends Model<IRmsBudgetAttributes, TRmsBudgetCreationAttributes> implements IRmsBudgetAttributes {
6
+ id: string;
7
+ instituteId: string;
8
+ departmentId?: string | null;
9
+ financialYear: string;
10
+ budgetCategory: string;
11
+ allocatedAmount: number;
12
+ consumedAmount: number;
13
+ status: RMS_BUDGET_STATUS;
14
+ remarks?: string | null;
15
+ createdBy?: string;
16
+ updatedBy?: string;
17
+ deletedBy?: string;
18
+ readonly createdAt?: Date;
19
+ readonly updatedAt?: Date;
20
+ readonly deletedAt?: Date;
21
+ static associate(models: any): void;
22
+ }
23
+ export default RmsBudgetModel;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sequelize_1 = require("sequelize");
4
+ const index_1 = require("./index");
5
+ const constants_1 = require("../../constants");
6
+ class RmsBudgetModel extends sequelize_1.Model {
7
+ static associate(models) {
8
+ const { InstituteModel, UserModel, RmsDepartmentModel } = models;
9
+ RmsBudgetModel.belongsTo(InstituteModel, { foreignKey: 'instituteId', as: 'institute' });
10
+ RmsBudgetModel.belongsTo(RmsDepartmentModel, { foreignKey: 'departmentId', as: 'department' });
11
+ InstituteModel.hasMany(RmsBudgetModel, { foreignKey: 'instituteId', as: 'instituteBudgets' });
12
+ RmsDepartmentModel.hasMany(RmsBudgetModel, { foreignKey: 'departmentId', as: 'departmentBudgets' });
13
+ RmsBudgetModel.belongsTo(UserModel, { foreignKey: 'createdBy', as: 'createdByUser' });
14
+ RmsBudgetModel.belongsTo(UserModel, { foreignKey: 'updatedBy', as: 'updatedByUser' });
15
+ RmsBudgetModel.belongsTo(UserModel, { foreignKey: 'deletedBy', as: 'deletedByUser' });
16
+ }
17
+ }
18
+ RmsBudgetModel.init({
19
+ id: { type: sequelize_1.DataTypes.UUID, defaultValue: sequelize_1.DataTypes.UUIDV4, allowNull: true, primaryKey: true },
20
+ instituteId: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'institute_id' },
21
+ departmentId: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'department_id' },
22
+ financialYear: { type: sequelize_1.DataTypes.STRING, allowNull: true, field: 'financial_year' },
23
+ budgetCategory: { type: sequelize_1.DataTypes.STRING, allowNull: true, field: 'budget_category' },
24
+ allocatedAmount: { type: sequelize_1.DataTypes.DECIMAL(12, 2), allowNull: true, field: 'allocated_amount' },
25
+ consumedAmount: { type: sequelize_1.DataTypes.DECIMAL(12, 2), allowNull: true, defaultValue: 0, field: 'consumed_amount' },
26
+ status: { type: sequelize_1.DataTypes.STRING, allowNull: true, defaultValue: constants_1.RMS_BUDGET_STATUS.ACTIVE, field: 'status' },
27
+ remarks: { type: sequelize_1.DataTypes.TEXT, allowNull: true, field: 'remarks' },
28
+ }, {
29
+ sequelize: index_1.sequelize,
30
+ modelName: 'RmsBudgetModel',
31
+ tableName: 'rms_budgets',
32
+ timestamps: true,
33
+ paranoid: true,
34
+ });
35
+ exports.default = RmsBudgetModel;
@@ -0,0 +1,24 @@
1
+ import { Model } from 'sequelize';
2
+ import { IRmsExpenseEntryAttributes } from '../../interfaces/rmsExpenseEntryInterface';
3
+ import { TRmsExpenseEntryCreationAttributes } from '../../types/rmsExpenseEntryType';
4
+ import { RMS_EXPENSE_TYPE } from '../../constants';
5
+ declare class RmsExpenseEntryModel extends Model<IRmsExpenseEntryAttributes, TRmsExpenseEntryCreationAttributes> implements IRmsExpenseEntryAttributes {
6
+ id: string;
7
+ instituteId: string;
8
+ budgetId?: string | null;
9
+ expenseType: RMS_EXPENSE_TYPE;
10
+ amount: number;
11
+ expenseDate: Date;
12
+ referenceId?: string | null;
13
+ referenceType?: string | null;
14
+ description: string;
15
+ approvedBy?: string | null;
16
+ createdBy?: string;
17
+ updatedBy?: string;
18
+ deletedBy?: string;
19
+ readonly createdAt?: Date;
20
+ readonly updatedAt?: Date;
21
+ readonly deletedAt?: Date;
22
+ static associate(models: any): void;
23
+ }
24
+ export default RmsExpenseEntryModel;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sequelize_1 = require("sequelize");
4
+ const index_1 = require("./index");
5
+ class RmsExpenseEntryModel extends sequelize_1.Model {
6
+ static associate(models) {
7
+ const { InstituteModel, UserModel, RmsBudgetModel } = models;
8
+ RmsExpenseEntryModel.belongsTo(InstituteModel, { foreignKey: 'instituteId', as: 'institute' });
9
+ RmsExpenseEntryModel.belongsTo(RmsBudgetModel, { foreignKey: 'budgetId', as: 'budget' });
10
+ RmsExpenseEntryModel.belongsTo(UserModel, { foreignKey: 'approvedBy', as: 'approver' });
11
+ InstituteModel.hasMany(RmsExpenseEntryModel, { foreignKey: 'instituteId', as: 'instituteExpenses' });
12
+ RmsBudgetModel.hasMany(RmsExpenseEntryModel, { foreignKey: 'budgetId', as: 'budgetExpenses' });
13
+ UserModel.hasMany(RmsExpenseEntryModel, { foreignKey: 'approvedBy', as: 'approvedByExpenses' });
14
+ RmsExpenseEntryModel.belongsTo(UserModel, { foreignKey: 'createdBy', as: 'createdByUser' });
15
+ RmsExpenseEntryModel.belongsTo(UserModel, { foreignKey: 'updatedBy', as: 'updatedByUser' });
16
+ RmsExpenseEntryModel.belongsTo(UserModel, { foreignKey: 'deletedBy', as: 'deletedByUser' });
17
+ }
18
+ }
19
+ RmsExpenseEntryModel.init({
20
+ id: { type: sequelize_1.DataTypes.UUID, defaultValue: sequelize_1.DataTypes.UUIDV4, allowNull: true, primaryKey: true },
21
+ instituteId: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'institute_id' },
22
+ budgetId: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'budget_id' },
23
+ expenseType: { type: sequelize_1.DataTypes.STRING, allowNull: true, field: 'expense_type' },
24
+ amount: { type: sequelize_1.DataTypes.DECIMAL(12, 2), allowNull: true, field: 'amount' },
25
+ expenseDate: { type: sequelize_1.DataTypes.DATE, allowNull: true, field: 'expense_date' },
26
+ referenceId: { type: sequelize_1.DataTypes.STRING, allowNull: true, field: 'reference_id' },
27
+ referenceType: { type: sequelize_1.DataTypes.STRING, allowNull: true, field: 'reference_type' },
28
+ description: { type: sequelize_1.DataTypes.TEXT, allowNull: true, field: 'description' },
29
+ approvedBy: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'approved_by' },
30
+ }, {
31
+ sequelize: index_1.sequelize,
32
+ modelName: 'RmsExpenseEntryModel',
33
+ tableName: 'rms_expense_entries',
34
+ timestamps: true,
35
+ paranoid: true,
36
+ });
37
+ exports.default = RmsExpenseEntryModel;
@@ -0,0 +1,25 @@
1
+ import { Model } from 'sequelize';
2
+ import { IRmsFacilityBookingAttributes } from '../../interfaces/rmsFacilityBookingInterface';
3
+ import { TRmsFacilityBookingCreationAttributes } from '../../types/rmsFacilityBookingType';
4
+ import { RMS_BOOKING_STATUS } from '../../constants';
5
+ declare class RmsFacilityBookingModel extends Model<IRmsFacilityBookingAttributes, TRmsFacilityBookingCreationAttributes> implements IRmsFacilityBookingAttributes {
6
+ id: string;
7
+ instituteId: string;
8
+ facilityId: string;
9
+ bookedBy: string;
10
+ purpose: string;
11
+ startTime: Date;
12
+ endTime: Date;
13
+ attendeesCount?: number | null;
14
+ status: RMS_BOOKING_STATUS;
15
+ approvedBy?: string | null;
16
+ rejectionReason?: string | null;
17
+ createdBy?: string;
18
+ updatedBy?: string;
19
+ deletedBy?: string;
20
+ readonly createdAt?: Date;
21
+ readonly updatedAt?: Date;
22
+ readonly deletedAt?: Date;
23
+ static associate(models: any): void;
24
+ }
25
+ export default RmsFacilityBookingModel;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sequelize_1 = require("sequelize");
4
+ const index_1 = require("./index");
5
+ const constants_1 = require("../../constants");
6
+ class RmsFacilityBookingModel extends sequelize_1.Model {
7
+ static associate(models) {
8
+ const { InstituteModel, UserModel, RmsFacilityModel } = models;
9
+ RmsFacilityBookingModel.belongsTo(InstituteModel, { foreignKey: 'instituteId', as: 'institute' });
10
+ RmsFacilityBookingModel.belongsTo(RmsFacilityModel, { foreignKey: 'facilityId', as: 'facility' });
11
+ RmsFacilityBookingModel.belongsTo(UserModel, { foreignKey: 'bookedBy', as: 'booker' });
12
+ RmsFacilityBookingModel.belongsTo(UserModel, { foreignKey: 'approvedBy', as: 'approver' });
13
+ UserModel.hasMany(RmsFacilityBookingModel, { foreignKey: 'bookedBy', as: 'bookings' });
14
+ UserModel.hasMany(RmsFacilityBookingModel, { foreignKey: 'approvedBy', as: 'approvedBookings' });
15
+ RmsFacilityModel.hasMany(RmsFacilityBookingModel, { foreignKey: 'facilityId', as: 'facilityBookings' });
16
+ InstituteModel.hasMany(RmsFacilityBookingModel, { foreignKey: 'instituteId', as: 'instituteBookings' });
17
+ RmsFacilityBookingModel.belongsTo(UserModel, { foreignKey: 'createdBy', as: 'createdByUser' });
18
+ RmsFacilityBookingModel.belongsTo(UserModel, { foreignKey: 'updatedBy', as: 'updatedByUser' });
19
+ RmsFacilityBookingModel.belongsTo(UserModel, { foreignKey: 'deletedBy', as: 'deletedByUser' });
20
+ }
21
+ }
22
+ RmsFacilityBookingModel.init({
23
+ id: { type: sequelize_1.DataTypes.UUID, defaultValue: sequelize_1.DataTypes.UUIDV4, allowNull: true, primaryKey: true },
24
+ instituteId: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'institute_id' },
25
+ facilityId: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'facility_id' },
26
+ bookedBy: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'booked_by' },
27
+ purpose: { type: sequelize_1.DataTypes.TEXT, allowNull: true, field: 'purpose' },
28
+ startTime: { type: sequelize_1.DataTypes.DATE, allowNull: true, field: 'start_time' },
29
+ endTime: { type: sequelize_1.DataTypes.DATE, allowNull: true, field: 'end_time' },
30
+ attendeesCount: { type: sequelize_1.DataTypes.INTEGER, allowNull: true, field: 'attendees_count', defaultValue: 0 },
31
+ status: { type: sequelize_1.DataTypes.STRING, allowNull: true, defaultValue: constants_1.RMS_BOOKING_STATUS.PENDING, field: 'status' },
32
+ approvedBy: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'approved_by' },
33
+ rejectionReason: { type: sequelize_1.DataTypes.TEXT, allowNull: true, field: 'rejection_reason' },
34
+ }, {
35
+ sequelize: index_1.sequelize,
36
+ modelName: 'RmsFacilityBookingModel',
37
+ tableName: 'rms_facility_bookings',
38
+ timestamps: true,
39
+ paranoid: true,
40
+ });
41
+ exports.default = RmsFacilityBookingModel;
@@ -0,0 +1,22 @@
1
+ import { Model } from 'sequelize';
2
+ import { IRmsFacilityAttributes } from '../../interfaces/rmsFacilityInterface';
3
+ import { TRmsFacilityCreationAttributes } from '../../types/rmsFacilityType';
4
+ import { RMS_FACILITY_STATUS } from '../../constants';
5
+ declare class RmsFacilityModel extends Model<IRmsFacilityAttributes, TRmsFacilityCreationAttributes> implements IRmsFacilityAttributes {
6
+ id: string;
7
+ instituteId: string;
8
+ facilityName: string;
9
+ facilityType?: string;
10
+ capacity?: number | null;
11
+ locationId?: string | null;
12
+ amenities?: string[] | null;
13
+ status: RMS_FACILITY_STATUS;
14
+ createdBy?: string;
15
+ updatedBy?: string;
16
+ deletedBy?: string;
17
+ readonly createdAt?: Date;
18
+ readonly updatedAt?: Date;
19
+ readonly deletedAt?: Date;
20
+ static associate(models: any): void;
21
+ }
22
+ export default RmsFacilityModel;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sequelize_1 = require("sequelize");
4
+ const index_1 = require("./index");
5
+ const constants_1 = require("../../constants");
6
+ class RmsFacilityModel extends sequelize_1.Model {
7
+ static associate(models) {
8
+ const { InstituteModel, UserModel, RmsLocationModel } = models;
9
+ RmsFacilityModel.belongsTo(InstituteModel, { foreignKey: 'instituteId', as: 'institute' });
10
+ if (RmsLocationModel)
11
+ RmsFacilityModel.belongsTo(RmsLocationModel, { foreignKey: 'locationId', as: 'location' });
12
+ RmsFacilityModel.belongsTo(UserModel, { foreignKey: 'createdBy', as: 'createdByUser' });
13
+ RmsFacilityModel.belongsTo(UserModel, { foreignKey: 'updatedBy', as: 'updatedByUser' });
14
+ RmsFacilityModel.belongsTo(UserModel, { foreignKey: 'deletedBy', as: 'deletedByUser' });
15
+ }
16
+ }
17
+ RmsFacilityModel.init({
18
+ id: { type: sequelize_1.DataTypes.UUID, defaultValue: sequelize_1.DataTypes.UUIDV4, allowNull: true, primaryKey: true },
19
+ instituteId: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'institute_id' },
20
+ facilityName: { type: sequelize_1.DataTypes.STRING, allowNull: true, field: 'facility_name' },
21
+ facilityType: { type: sequelize_1.DataTypes.STRING, allowNull: true, field: 'facility_type' },
22
+ capacity: { type: sequelize_1.DataTypes.INTEGER, allowNull: true, field: 'capacity' },
23
+ locationId: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'location_id' },
24
+ amenities: { type: sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.STRING), allowNull: true, field: 'amenities' },
25
+ status: { type: sequelize_1.DataTypes.STRING, allowNull: true, defaultValue: constants_1.RMS_FACILITY_STATUS.ACTIVE, field: 'status' },
26
+ }, {
27
+ sequelize: index_1.sequelize,
28
+ modelName: 'RmsFacilityModel',
29
+ tableName: 'rms_facilities',
30
+ timestamps: true,
31
+ paranoid: true,
32
+ });
33
+ exports.default = RmsFacilityModel;
@@ -0,0 +1,22 @@
1
+ import { Model } from 'sequelize';
2
+ import { IRmsMaintenanceActivityAttributes } from '../../interfaces/rmsMaintenanceActivityInterface';
3
+ import { TRmsMaintenanceActivityCreationAttributes } from '../../types/rmsMaintenanceActivityType';
4
+ declare class RmsMaintenanceActivityModel extends Model<IRmsMaintenanceActivityAttributes, TRmsMaintenanceActivityCreationAttributes> implements IRmsMaintenanceActivityAttributes {
5
+ id: string;
6
+ instituteId: string;
7
+ ticketId: string;
8
+ performedBy: string;
9
+ activityDate: Date;
10
+ description: string;
11
+ partsReplaced?: string[] | null;
12
+ timeSpentHours?: number | null;
13
+ cost?: number | null;
14
+ createdBy?: string;
15
+ updatedBy?: string;
16
+ deletedBy?: string;
17
+ readonly createdAt?: Date;
18
+ readonly updatedAt?: Date;
19
+ readonly deletedAt?: Date;
20
+ static associate(models: any): void;
21
+ }
22
+ export default RmsMaintenanceActivityModel;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sequelize_1 = require("sequelize");
4
+ const index_1 = require("./index");
5
+ class RmsMaintenanceActivityModel extends sequelize_1.Model {
6
+ static associate(models) {
7
+ const { InstituteModel, UserModel, RmsMaintenanceTicketModel } = models;
8
+ RmsMaintenanceActivityModel.belongsTo(InstituteModel, { foreignKey: 'instituteId', as: 'institute' });
9
+ RmsMaintenanceActivityModel.belongsTo(RmsMaintenanceTicketModel, { foreignKey: 'ticketId', as: 'ticket' });
10
+ RmsMaintenanceActivityModel.belongsTo(UserModel, { foreignKey: 'performedBy', as: 'performer' });
11
+ InstituteModel.hasMany(RmsMaintenanceActivityModel, { foreignKey: 'instituteId', as: 'instituteActivities' });
12
+ RmsMaintenanceTicketModel.hasMany(RmsMaintenanceActivityModel, { foreignKey: 'ticketId', as: 'ticketActivities' });
13
+ UserModel.hasMany(RmsMaintenanceActivityModel, { foreignKey: 'performedBy', as: 'userActivities' });
14
+ RmsMaintenanceActivityModel.belongsTo(UserModel, { foreignKey: 'createdBy', as: 'createdByUser' });
15
+ RmsMaintenanceActivityModel.belongsTo(UserModel, { foreignKey: 'updatedBy', as: 'updatedByUser' });
16
+ RmsMaintenanceActivityModel.belongsTo(UserModel, { foreignKey: 'deletedBy', as: 'deletedByUser' });
17
+ }
18
+ }
19
+ RmsMaintenanceActivityModel.init({
20
+ id: { type: sequelize_1.DataTypes.UUID, defaultValue: sequelize_1.DataTypes.UUIDV4, allowNull: true, primaryKey: true },
21
+ instituteId: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'institute_id' },
22
+ ticketId: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'ticket_id' },
23
+ performedBy: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'performed_by' },
24
+ activityDate: { type: sequelize_1.DataTypes.DATE, allowNull: true, field: 'activity_date' },
25
+ description: { type: sequelize_1.DataTypes.TEXT, allowNull: true, field: 'description' },
26
+ partsReplaced: { type: sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.STRING), allowNull: true, field: 'parts_replaced' },
27
+ timeSpentHours: { type: sequelize_1.DataTypes.DECIMAL(5, 2), allowNull: true, field: 'time_spent_hours' },
28
+ cost: { type: sequelize_1.DataTypes.DECIMAL(10, 2), allowNull: true, field: 'cost' },
29
+ }, {
30
+ sequelize: index_1.sequelize,
31
+ modelName: 'RmsMaintenanceActivityModel',
32
+ tableName: 'rms_maintenance_activities',
33
+ timestamps: true,
34
+ paranoid: false, // Immutable ledger
35
+ });
36
+ exports.default = RmsMaintenanceActivityModel;
@@ -0,0 +1,28 @@
1
+ import { Model } from 'sequelize';
2
+ import { IRmsMaintenanceTicketAttributes } from '../../interfaces/rmsMaintenanceTicketInterface';
3
+ import { TRmsMaintenanceTicketCreationAttributes } from '../../types/rmsMaintenanceTicketType';
4
+ import { RMS_TICKET_STATUS, RMS_TICKET_PRIORITY } from '../../constants';
5
+ declare class RmsMaintenanceTicketModel extends Model<IRmsMaintenanceTicketAttributes, TRmsMaintenanceTicketCreationAttributes> implements IRmsMaintenanceTicketAttributes {
6
+ id: string;
7
+ instituteId: string;
8
+ resourceId?: string | null;
9
+ assetId?: string | null;
10
+ facilityId?: string | null;
11
+ reportedBy: string;
12
+ assignedTo?: string | null;
13
+ issueDescription: string;
14
+ priority: RMS_TICKET_PRIORITY;
15
+ status: RMS_TICKET_STATUS;
16
+ expectedCompletionDate?: Date | null;
17
+ actualCompletionDate?: Date | null;
18
+ resolutionNotes?: string | null;
19
+ cost?: number | null;
20
+ createdBy?: string;
21
+ updatedBy?: string;
22
+ deletedBy?: string;
23
+ readonly createdAt?: Date;
24
+ readonly updatedAt?: Date;
25
+ readonly deletedAt?: Date;
26
+ static associate(models: any): void;
27
+ }
28
+ export default RmsMaintenanceTicketModel;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sequelize_1 = require("sequelize");
4
+ const index_1 = require("./index");
5
+ const constants_1 = require("../../constants");
6
+ class RmsMaintenanceTicketModel extends sequelize_1.Model {
7
+ static associate(models) {
8
+ const { InstituteModel, UserModel, RmsAssetModel, RmsFacilityModel } = models;
9
+ RmsMaintenanceTicketModel.belongsTo(InstituteModel, { foreignKey: 'instituteId', as: 'institute' });
10
+ RmsMaintenanceTicketModel.belongsTo(RmsAssetModel, { foreignKey: 'assetId', as: 'asset' });
11
+ RmsMaintenanceTicketModel.belongsTo(RmsFacilityModel, { foreignKey: 'facilityId', as: 'facility' });
12
+ RmsMaintenanceTicketModel.belongsTo(UserModel, { foreignKey: 'reportedBy', as: 'reporter' });
13
+ RmsMaintenanceTicketModel.belongsTo(UserModel, { foreignKey: 'assignedTo', as: 'assignee' });
14
+ RmsMaintenanceTicketModel.belongsTo(UserModel, { foreignKey: 'createdBy', as: 'createdByUser' });
15
+ RmsMaintenanceTicketModel.belongsTo(UserModel, { foreignKey: 'updatedBy', as: 'updatedByUser' });
16
+ RmsMaintenanceTicketModel.belongsTo(UserModel, { foreignKey: 'deletedBy', as: 'deletedByUser' });
17
+ InstituteModel.hasMany(RmsMaintenanceTicketModel, { foreignKey: 'instituteId', as: 'instituteTickets' });
18
+ RmsAssetModel.hasMany(RmsMaintenanceTicketModel, { foreignKey: 'assetId', as: 'assetTickets' });
19
+ RmsFacilityModel.hasMany(RmsMaintenanceTicketModel, { foreignKey: 'facilityId', as: 'facilityTickets' });
20
+ UserModel.hasMany(RmsMaintenanceTicketModel, { foreignKey: 'reportedBy', as: 'reportedTickets' });
21
+ UserModel.hasMany(RmsMaintenanceTicketModel, { foreignKey: 'assignedTo', as: 'assignedTickets' });
22
+ }
23
+ }
24
+ RmsMaintenanceTicketModel.init({
25
+ id: { type: sequelize_1.DataTypes.UUID, defaultValue: sequelize_1.DataTypes.UUIDV4, allowNull: true, primaryKey: true },
26
+ instituteId: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'institute_id' },
27
+ resourceId: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'resource_id' },
28
+ assetId: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'asset_id' },
29
+ facilityId: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'facility_id' },
30
+ reportedBy: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'reported_by' },
31
+ assignedTo: { type: sequelize_1.DataTypes.UUID, allowNull: true, field: 'assigned_to' },
32
+ issueDescription: { type: sequelize_1.DataTypes.TEXT, allowNull: true, field: 'issue_description' },
33
+ priority: { type: sequelize_1.DataTypes.STRING, allowNull: true, defaultValue: constants_1.RMS_TICKET_PRIORITY.MEDIUM, field: 'priority' },
34
+ status: { type: sequelize_1.DataTypes.STRING, allowNull: true, defaultValue: constants_1.RMS_TICKET_STATUS.OPEN, field: 'status' },
35
+ expectedCompletionDate: { type: sequelize_1.DataTypes.DATE, allowNull: true, field: 'expected_completion_date' },
36
+ actualCompletionDate: { type: sequelize_1.DataTypes.DATE, allowNull: true, field: 'actual_completion_date' },
37
+ resolutionNotes: { type: sequelize_1.DataTypes.TEXT, allowNull: true, field: 'resolution_notes' },
38
+ cost: { type: sequelize_1.DataTypes.DECIMAL(10, 2), allowNull: true, field: 'cost' },
39
+ }, {
40
+ sequelize: index_1.sequelize,
41
+ modelName: 'RmsMaintenanceTicketModel',
42
+ tableName: 'rms_maintenance_tickets',
43
+ timestamps: true,
44
+ paranoid: true,
45
+ });
46
+ exports.default = RmsMaintenanceTicketModel;