rentease-backend/models/index.js

39 lines
1.1 KiB
JavaScript
Raw Normal View History

2026-03-02 12:36:41 +00:00
const Apartment = require('./Apartment');
const Room = require('./Room');
const Rental = require('./Rental');
const WaterBill = require('./WaterBill');
const ElectricityBill = require('./ElectricityBill');
2026-03-08 16:28:33 +00:00
const User = require('./User');
const Role = require('./Role');
const Menu = require('./Menu');
const RoleMenu = require('./RoleMenu');
const OperationLog = require('./OperationLog');
const LoginLog = require('./LoginLog');
2026-03-15 12:37:31 +00:00
const Expense = require('./Expense');
2026-03-08 16:28:33 +00:00
// 关联关系
User.belongsTo(Role, { foreignKey: 'roleId', as: 'role' });
Role.hasMany(User, { foreignKey: 'roleId', as: 'users' });
// 菜单自关联(父子菜单)
Menu.belongsTo(Menu, { foreignKey: 'parentId', as: 'parent' });
Menu.hasMany(Menu, { foreignKey: 'parentId', as: 'children' });
// 角色与菜单多对多关联
Role.belongsToMany(Menu, { through: RoleMenu, foreignKey: 'roleId', otherKey: 'menuId', as: 'menus' });
Menu.belongsToMany(Role, { through: RoleMenu, foreignKey: 'menuId', otherKey: 'roleId', as: 'roles' });
2026-03-02 12:36:41 +00:00
module.exports = {
Apartment,
Room,
Rental,
WaterBill,
2026-03-08 16:28:33 +00:00
ElectricityBill,
User,
Role,
Menu,
RoleMenu,
OperationLog,
2026-03-15 12:37:31 +00:00
LoginLog,
Expense
2026-03-02 12:36:41 +00:00
};