const { DataTypes } = require('sequelize'); const sequelize = require('../config/db'); const Menu = sequelize.define('Menu', { id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true }, parentId: { type: DataTypes.INTEGER, allowNull: true, defaultValue: null, comment: '父菜单ID,null表示顶级菜单' }, name: { type: DataTypes.STRING(50), allowNull: false, comment: '菜单名称' }, code: { type: DataTypes.STRING(50), allowNull: false, unique: true, comment: '菜单编码' }, type: { type: DataTypes.ENUM('menu', 'button'), allowNull: false, defaultValue: 'menu', comment: '类型:menu-菜单,button-按钮' }, path: { type: DataTypes.STRING(200), allowNull: true, comment: '路由路径' }, component: { type: DataTypes.STRING(200), allowNull: true, comment: '组件路径' }, icon: { type: DataTypes.STRING(50), allowNull: true, comment: '菜单图标' }, sort: { type: DataTypes.INTEGER, allowNull: false, defaultValue: 0, comment: '排序号' }, visible: { type: DataTypes.ENUM('show', 'hide'), allowNull: false, defaultValue: 'show', comment: '是否显示:show-显示,hide-隐藏' }, status: { type: DataTypes.ENUM('active', 'disabled'), allowNull: false, defaultValue: 'active', comment: '状态:active-启用,disabled-禁用' }, createBy: { type: DataTypes.INTEGER, allowNull: true, comment: '创建人ID' }, updateBy: { type: DataTypes.INTEGER, allowNull: true, comment: '修改人ID' }, isDeleted: { type: DataTypes.BOOLEAN, allowNull: false, defaultValue: false, comment: '是否删除:true-已删除,false-未删除' } }, { tableName: 'menus', timestamps: true, comment: '菜单表' }); module.exports = Menu;