@kipicore/dbcore 1.1.29 → 1.1.32

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.
@@ -1,8 +1,8 @@
1
- import { Model } from 'sequelize';
1
+ import { Model, Sequelize } from 'sequelize';
2
2
  import { IAcademicCalendarModelAttributes } from '../../interfaces/academicCalendarInterface';
3
3
  import { TAcademicCalendarModelCreationAttributes } from '../../types/academicCalendarType';
4
4
  import { ACADEMIC_CALENDARS_STATUS } from '../../constants/app';
5
- declare class AcademicCalendarModel extends Model<IAcademicCalendarModelAttributes, TAcademicCalendarModelCreationAttributes> {
5
+ export declare class AcademicCalendarModel extends Model<IAcademicCalendarModelAttributes, TAcademicCalendarModelCreationAttributes> {
6
6
  id: string;
7
7
  instituteId: string;
8
8
  startDate: Date;
@@ -14,5 +14,7 @@ declare class AcademicCalendarModel extends Model<IAcademicCalendarModelAttribut
14
14
  readonly createdAt: Date;
15
15
  readonly deletedAt: string;
16
16
  readonly updatedAt: Date;
17
+ static associate(models: any): void;
17
18
  }
18
- export default AcademicCalendarModel;
19
+ declare const _default: (sequelize: Sequelize) => typeof AcademicCalendarModel;
20
+ export default _default;
@@ -1,94 +1,79 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AcademicCalendarModel = void 0;
6
4
  const sequelize_1 = require("sequelize");
7
- const index_1 = require("./index");
8
- const instituteModel_1 = __importDefault(require("./instituteModel"));
9
- // import BatchModel from './batchModel';
10
- const userModel_1 = __importDefault(require("./userModel"));
11
5
  const app_1 = require("../../constants/app");
12
6
  class AcademicCalendarModel extends sequelize_1.Model {
7
+ static associate(models) {
8
+ AcademicCalendarModel.belongsTo(models.InstituteModel, {
9
+ foreignKey: {
10
+ name: 'instituteId',
11
+ field: 'institute_id',
12
+ },
13
+ as: 'academicCalendarInstitute',
14
+ });
15
+ AcademicCalendarModel.belongsTo(models.UserModel, {
16
+ foreignKey: {
17
+ name: 'createdBy',
18
+ allowNull: true,
19
+ field: 'created_by',
20
+ },
21
+ as: 'createdByUser',
22
+ });
23
+ AcademicCalendarModel.belongsTo(models.UserModel, {
24
+ foreignKey: {
25
+ name: 'updatedBy',
26
+ allowNull: true,
27
+ field: 'updated_by',
28
+ },
29
+ as: 'updatedByUser',
30
+ });
31
+ AcademicCalendarModel.belongsTo(models.UserModel, {
32
+ foreignKey: {
33
+ name: 'deletedBy',
34
+ allowNull: true,
35
+ field: 'deleted_by',
36
+ },
37
+ as: 'deletedByUser',
38
+ });
39
+ models.InstituteModel.hasMany(AcademicCalendarModel, { foreignKey: 'instituteId', as: 'instituteHasAcademicCalendars' });
40
+ }
13
41
  }
14
- AcademicCalendarModel.init({
15
- id: {
16
- type: sequelize_1.DataTypes.UUID,
17
- defaultValue: sequelize_1.DataTypes.UUIDV4,
18
- allowNull: false,
19
- primaryKey: true,
20
- },
21
- instituteId: {
22
- type: sequelize_1.DataTypes.UUID,
23
- field: 'institute_id',
24
- allowNull: false,
25
- },
26
- startDate: {
27
- type: sequelize_1.DataTypes.DATE,
28
- field: 'start_date',
29
- allowNull: false,
30
- },
31
- endDate: {
32
- type: sequelize_1.DataTypes.DATE,
33
- field: 'end_date',
34
- allowNull: false,
35
- },
36
- // batchId: {
37
- // type: DataTypes.UUID,
38
- // field: 'batch_id',
39
- // allowNull: true,
40
- // },
41
- status: {
42
- type: sequelize_1.DataTypes.ENUM,
43
- values: Object.values(app_1.ACADEMIC_CALENDARS_STATUS),
44
- allowNull: false,
45
- defaultValue: app_1.ACADEMIC_CALENDARS_STATUS.FUTURE_ACADEMIC_CALENDAR,
46
- },
47
- }, {
48
- modelName: 'AcademicCalendarModel',
49
- tableName: 'academic_calendars',
50
- timestamps: true,
51
- sequelize: index_1.sequelize,
52
- });
53
- AcademicCalendarModel.belongsTo(instituteModel_1.default, {
54
- foreignKey: {
55
- name: 'instituteId',
56
- field: 'institute_id',
57
- },
58
- as: 'academicCalendarInstitute',
59
- });
60
- // AcademicCalendarModel.belongsTo(BatchModel, {
61
- // foreignKey: {
62
- // name: 'batchId',
63
- // field: 'batch_id',
64
- // allowNull: true,
65
- // },
66
- // as: 'academicCalendarBatch',
67
- // });
68
- // BatchModel.hasMany(AcademicCalendarModel, { foreignKey: 'batchId', as: 'batchHasAcademicCalendars' });
69
- instituteModel_1.default.hasMany(AcademicCalendarModel, { foreignKey: 'instituteId', as: 'instituteHasAcademicCalendars' });
70
- AcademicCalendarModel.belongsTo(userModel_1.default, {
71
- foreignKey: {
72
- name: 'createdBy',
73
- allowNull: true,
74
- field: 'created_by',
75
- },
76
- as: 'createdByUser',
77
- });
78
- AcademicCalendarModel.belongsTo(userModel_1.default, {
79
- foreignKey: {
80
- name: 'updatedBy',
81
- allowNull: true,
82
- field: 'updated_by',
83
- },
84
- as: 'updatedByUser',
85
- });
86
- AcademicCalendarModel.belongsTo(userModel_1.default, {
87
- foreignKey: {
88
- name: 'deletedBy',
89
- allowNull: true,
90
- field: 'deleted_by',
91
- },
92
- as: 'deletedByUser',
93
- });
94
- exports.default = AcademicCalendarModel;
42
+ exports.AcademicCalendarModel = AcademicCalendarModel;
43
+ exports.default = (sequelize) => {
44
+ AcademicCalendarModel.init({
45
+ id: {
46
+ type: sequelize_1.DataTypes.UUID,
47
+ defaultValue: sequelize_1.DataTypes.UUIDV4,
48
+ allowNull: false,
49
+ primaryKey: true,
50
+ },
51
+ instituteId: {
52
+ type: sequelize_1.DataTypes.UUID,
53
+ field: 'institute_id',
54
+ allowNull: false,
55
+ },
56
+ startDate: {
57
+ type: sequelize_1.DataTypes.DATE,
58
+ field: 'start_date',
59
+ allowNull: false,
60
+ },
61
+ endDate: {
62
+ type: sequelize_1.DataTypes.DATE,
63
+ field: 'end_date',
64
+ allowNull: false,
65
+ },
66
+ status: {
67
+ type: sequelize_1.DataTypes.ENUM,
68
+ values: Object.values(app_1.ACADEMIC_CALENDARS_STATUS),
69
+ allowNull: false,
70
+ defaultValue: app_1.ACADEMIC_CALENDARS_STATUS.FUTURE_ACADEMIC_CALENDAR,
71
+ },
72
+ }, {
73
+ modelName: 'AcademicCalendarModel',
74
+ tableName: 'academic_calendars',
75
+ timestamps: true,
76
+ sequelize,
77
+ });
78
+ return AcademicCalendarModel;
79
+ };
@@ -10,7 +10,7 @@ const userModel_1 = __importDefault(require("./userModel"));
10
10
  const instituteModel_1 = __importDefault(require("./instituteModel"));
11
11
  const typeManagementModel_1 = __importDefault(require("./typeManagementModel"));
12
12
  const workingShiftModel_1 = __importDefault(require("./workingShiftModel"));
13
- const academicCalendarModel_1 = __importDefault(require("./academicCalendarModel"));
13
+ const academicCalendarModel_1 = require("./academicCalendarModel");
14
14
  const slotModel_1 = __importDefault(require("./slotModel"));
15
15
  const sequelize_2 = require("sequelize");
16
16
  class BatchModel extends sequelize_1.Model {
@@ -189,7 +189,7 @@ workingShiftModel_1.default.hasMany(BatchModel, {
189
189
  },
190
190
  as: 'batchesShift',
191
191
  });
192
- academicCalendarModel_1.default.hasMany(BatchModel, {
192
+ academicCalendarModel_1.AcademicCalendarModel.hasMany(BatchModel, {
193
193
  foreignKey: {
194
194
  name: 'academicCalendarId',
195
195
  field: 'academic_calendar_id',
@@ -197,7 +197,7 @@ academicCalendarModel_1.default.hasMany(BatchModel, {
197
197
  },
198
198
  as: 'academicCalendarBatchList',
199
199
  });
200
- BatchModel.belongsTo(academicCalendarModel_1.default, {
200
+ BatchModel.belongsTo(academicCalendarModel_1.AcademicCalendarModel, {
201
201
  foreignKey: {
202
202
  name: 'academicCalendarId',
203
203
  field: 'academic_calendar_id',
@@ -7,7 +7,7 @@ const sequelize_1 = require("sequelize");
7
7
  const index_1 = require("./index");
8
8
  const userModel_1 = __importDefault(require("./userModel"));
9
9
  const instituteModel_1 = __importDefault(require("./instituteModel"));
10
- const academicCalendarModel_1 = __importDefault(require("./academicCalendarModel"));
10
+ const academicCalendarModel_1 = require("./academicCalendarModel");
11
11
  class ContactFeedBackModel extends sequelize_1.Model {
12
12
  }
13
13
  ContactFeedBackModel.init({
@@ -109,7 +109,7 @@ instituteModel_1.default.hasMany(ContactFeedBackModel, {
109
109
  foreignKey: 'givenInstitutedId',
110
110
  as: 'givenInstituteHasFeedBack',
111
111
  });
112
- ContactFeedBackModel.belongsTo(academicCalendarModel_1.default, {
112
+ ContactFeedBackModel.belongsTo(academicCalendarModel_1.AcademicCalendarModel, {
113
113
  foreignKey: 'academicCalendarId',
114
114
  as: 'contactFeedBackAcCalendar',
115
115
  });
@@ -10,7 +10,7 @@ const instituteModel_1 = __importDefault(require("./instituteModel"));
10
10
  const userModel_1 = __importDefault(require("./userModel"));
11
11
  const errorMessages_1 = require("../../constants/errorMessages");
12
12
  const paymentTermsModel_1 = __importDefault(require("./paymentTermsModel"));
13
- const academicCalendarModel_1 = __importDefault(require("./academicCalendarModel"));
13
+ const academicCalendarModel_1 = require("./academicCalendarModel");
14
14
  class FeesCollectionModel extends sequelize_1.Model {
15
15
  }
16
16
  FeesCollectionModel.init({
@@ -177,7 +177,7 @@ userModel_1.default.hasMany(FeesCollectionModel, {
177
177
  foreignKey: 'userId',
178
178
  as: 'userHasFeeCollection',
179
179
  });
180
- FeesCollectionModel.belongsTo(academicCalendarModel_1.default, {
180
+ FeesCollectionModel.belongsTo(academicCalendarModel_1.AcademicCalendarModel, {
181
181
  foreignKey: {
182
182
  name: 'academicCalendarId',
183
183
  field: 'academic_calendar_id',
@@ -185,7 +185,7 @@ FeesCollectionModel.belongsTo(academicCalendarModel_1.default, {
185
185
  },
186
186
  as: 'CollectionCalendar',
187
187
  });
188
- academicCalendarModel_1.default.hasMany(FeesCollectionModel, {
188
+ academicCalendarModel_1.AcademicCalendarModel.hasMany(FeesCollectionModel, {
189
189
  foreignKey: {
190
190
  name: 'academicCalendarId',
191
191
  field: 'academic_calendar_id',
@@ -28,18 +28,20 @@ const sequelize = new sequelize_1.Sequelize(database, username, password, {
28
28
  });
29
29
  exports.sequelize = sequelize;
30
30
  // add all models
31
+ // Load models
31
32
  fs_1.default.readdirSync(__dirname)
32
- .filter(file => file.indexOf('.') !== 0 && file !== 'index' && file.slice(-3) === '.js') // change to .js for compiled files
33
+ .filter(file => file.indexOf('.') !== 0 && file !== 'index' && file.slice(-3) === '.js')
33
34
  .forEach(file => {
34
- const model = require(path_1.default.join(__dirname, file));
35
- db[model?.default?.name || model.name] = model.default || model;
35
+ const modelDefiner = require(path_1.default.join(__dirname, file));
36
+ const model = modelDefiner.default ? modelDefiner.default(sequelize) : modelDefiner(sequelize);
37
+ db[model.name] = model;
38
+ });
39
+ // Run associations
40
+ Object.keys(db).forEach(modelName => {
41
+ if (typeof db[modelName].associate === 'function') {
42
+ db[modelName].associate(db);
43
+ }
36
44
  });
37
- // add all associations
38
- // Object.keys(db).forEach(modelName => {
39
- // if ('associate' in db[modelName]) {
40
- // db[modelName].associate(db);
41
- // }
42
- // });
43
45
  sequelize.addHook('beforeBulkDestroy', async (options) => {
44
46
  const userId = options.userId; // Pass the user ID through options
45
47
  if (userId) {
@@ -7,7 +7,7 @@ const sequelize_1 = require("sequelize");
7
7
  const index_1 = require("./index");
8
8
  const instituteModel_1 = __importDefault(require("./instituteModel"));
9
9
  const userModel_1 = __importDefault(require("./userModel"));
10
- const academicCalendarModel_1 = __importDefault(require("./academicCalendarModel"));
10
+ const academicCalendarModel_1 = require("./academicCalendarModel");
11
11
  class SchoolFeeCollectionModel extends sequelize_1.Model {
12
12
  }
13
13
  SchoolFeeCollectionModel.init({
@@ -137,7 +137,7 @@ SchoolFeeCollectionModel.hasMany(SchoolFeeCollectionModel, {
137
137
  },
138
138
  as: 'collectionPreviousCollection',
139
139
  });
140
- SchoolFeeCollectionModel.belongsTo(academicCalendarModel_1.default, {
140
+ SchoolFeeCollectionModel.belongsTo(academicCalendarModel_1.AcademicCalendarModel, {
141
141
  foreignKey: {
142
142
  name: 'academicCalendarId',
143
143
  field: 'academic_calendar_id',
@@ -145,7 +145,7 @@ SchoolFeeCollectionModel.belongsTo(academicCalendarModel_1.default, {
145
145
  },
146
146
  as: 'schoolCollectionCalendar',
147
147
  });
148
- academicCalendarModel_1.default.hasMany(SchoolFeeCollectionModel, {
148
+ academicCalendarModel_1.AcademicCalendarModel.hasMany(SchoolFeeCollectionModel, {
149
149
  foreignKey: {
150
150
  name: 'academicCalendarId',
151
151
  field: 'academic_calendar_id',
@@ -7,7 +7,7 @@ const sequelize_1 = require("sequelize");
7
7
  const index_1 = require("./index");
8
8
  const userModel_1 = __importDefault(require("./userModel"));
9
9
  const instituteModel_1 = __importDefault(require("./instituteModel"));
10
- const academicCalendarModel_1 = __importDefault(require("./academicCalendarModel"));
10
+ const academicCalendarModel_1 = require("./academicCalendarModel");
11
11
  const schoolFeeCollectionModel_1 = __importDefault(require("./schoolFeeCollectionModel"));
12
12
  const bankAccountDetailsModel_1 = __importDefault(require("./bankAccountDetailsModel"));
13
13
  class UserFeeTypeByAccountModel extends sequelize_1.Model {
@@ -133,7 +133,7 @@ bankAccountDetailsModel_1.default.hasMany(UserFeeTypeByAccountModel, {
133
133
  },
134
134
  as: 'bankHasAccount',
135
135
  });
136
- UserFeeTypeByAccountModel.belongsTo(academicCalendarModel_1.default, {
136
+ UserFeeTypeByAccountModel.belongsTo(academicCalendarModel_1.AcademicCalendarModel, {
137
137
  foreignKey: {
138
138
  name: 'academicCalendarId',
139
139
  field: 'academic_calendar_id',
@@ -141,7 +141,7 @@ UserFeeTypeByAccountModel.belongsTo(academicCalendarModel_1.default, {
141
141
  },
142
142
  as: 'accountAcademicCalendar',
143
143
  });
144
- academicCalendarModel_1.default.hasMany(UserFeeTypeByAccountModel, {
144
+ academicCalendarModel_1.AcademicCalendarModel.hasMany(UserFeeTypeByAccountModel, {
145
145
  foreignKey: {
146
146
  name: 'academicCalendarId',
147
147
  field: 'academic_calendar_id',
@@ -7,7 +7,7 @@ const sequelize_1 = require("sequelize");
7
7
  const index_1 = require("./index");
8
8
  const userModel_1 = __importDefault(require("./userModel"));
9
9
  const instituteModel_1 = __importDefault(require("./instituteModel"));
10
- const academicCalendarModel_1 = __importDefault(require("./academicCalendarModel"));
10
+ const academicCalendarModel_1 = require("./academicCalendarModel");
11
11
  const schoolFeeCollectionModel_1 = __importDefault(require("./schoolFeeCollectionModel"));
12
12
  const feeTypeModel_1 = __importDefault(require("./feeTypeModel"));
13
13
  const app_1 = require("../../constants/app");
@@ -161,7 +161,7 @@ UserHasFeeTermsModel.belongsTo(feeTypeModel_1.default, {
161
161
  // },
162
162
  // as: 'typeHasFeeTerm',
163
163
  // });
164
- UserHasFeeTermsModel.belongsTo(academicCalendarModel_1.default, {
164
+ UserHasFeeTermsModel.belongsTo(academicCalendarModel_1.AcademicCalendarModel, {
165
165
  foreignKey: {
166
166
  name: 'academicCalendarId',
167
167
  field: 'academic_calendar_id',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kipicore/dbcore",
3
- "version": "1.1.29",
3
+ "version": "1.1.32",
4
4
  "description": "Reusable DB core package with Postgres, MongoDB, models, services, interfaces, and types",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",