-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.ts
34 lines (29 loc) · 1009 Bytes
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { db } from './_db';
// Import DB Models
import {
UserModel,
MessageModel,
StudyModel,
TagModel,
TaskModel,
StatusModel,
} from './models/index';
// Define relationships between models
UserModel.hasMany(TagModel);
UserModel.belongsToMany(StudyModel, {through: 'UserStudy'});
StudyModel.belongsToMany(UserModel, {through: 'UserStudy'});
UserModel.hasMany(MessageModel);
MessageModel.belongsTo(StudyModel);
StudyModel.hasMany(TagModel);
StudyModel.belongsTo(UserModel, {as: 'Creator'});
// tasks
StudyModel.hasMany(TaskModel, { onDelete: 'cascade'});
TaskModel.belongsTo(StudyModel);
TaskModel.hasMany(StatusModel, { as: 'SurveyStatus', onDelete: 'cascade'});
UserModel.hasMany(StatusModel, { as: 'SurveyStatus', onDelete: 'cascade' });
TaskModel.hasOne(TaskModel, { // reminders are associated with a Parent Survey
as: 'ParentSurveyTask',
onDelete: 'cascade'},
);
TaskModel.hasMany(TaskModel, { as: 'Reminders'}); // reminders are associated with a Parent Survey
export default db;