Sequelize UI

  • employee-dataset
    • models
import type { Sequelize, Model } from 'sequelize'
import { Employee } from './Employee'
import { Department } from './Department'
import { DeptEmp } from './DeptEmp'
import { DeptManager } from './DeptManager'
import { Title } from './Title'
import { Salary } from './Salary'
export {
Employee,
Department,
DeptEmp,
DeptManager,
Title,
Salary
}
export function initModels(sequelize: Sequelize) {
Employee.initModel(sequelize)
Department.initModel(sequelize)
DeptEmp.initModel(sequelize)
DeptManager.initModel(sequelize)
Title.initModel(sequelize)
Salary.initModel(sequelize)
Employee.hasMany(Salary, {
as: 'salaries',
foreignKey: 'emp_no'
})
Employee.hasMany(Title, {
as: 'titles',
foreignKey: 'emp_no'
})
Employee.belongsToMany(Department, {
as: 'employingDepartments',
through: DeptEmp,
foreignKey: 'emp_no',
otherKey: 'dept_no',
onDelete: 'CASCADE'
})
Employee.belongsToMany(Department, {
as: 'managedDepartments',
through: DeptManager,
foreignKey: 'emp_no',
otherKey: 'dept_no',
onDelete: 'CASCADE'
})
Department.belongsToMany(Employee, {
as: 'employees',
through: DeptEmp,
foreignKey: 'emp_no',
otherKey: 'dept_no',
onDelete: 'CASCADE'
})
Department.belongsToMany(Employee, {
as: 'managers',
through: DeptManager,
foreignKey: 'emp_no',
otherKey: 'dept_no',
onDelete: 'CASCADE'
})
Department.hasMany(DeptEmp, {
as: 'deptEmps',
foreignKey: 'dept_no'
})
Department.hasMany(DeptManager, {
as: 'deptManagers',
foreignKey: 'dept_no'
})
DeptEmp.belongsTo(Employee, {
as: 'employee',
foreignKey: 'emp_no'
})
DeptEmp.belongsTo(Department, {
as: 'department',
foreignKey: 'dept_no'
})
DeptManager.belongsTo(Employee, {
as: 'employee',
foreignKey: 'emp_no'
})
DeptManager.belongsTo(Department, {
as: 'department',
foreignKey: 'dept_no'
})
Title.belongsTo(Employee, {
as: 'employee',
foreignKey: 'emp_no'
})
Salary.belongsTo(Employee, {
as: 'employee',
foreignKey: 'emp_no'
})
return {
Employee,
Department,
DeptEmp,
DeptManager,
Title,
Salary
}
}