25 lines
1.1 KiB
JavaScript
25 lines
1.1 KiB
JavaScript
const { DataTypes } = require('sequelize');
|
|
const { sequelize } = require('../config/database');
|
|
|
|
const Permission = sequelize.define('permissions', {
|
|
id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, primaryKey: true },
|
|
permission_code: { type: DataTypes.STRING(50), unique: true, allowNull: false },
|
|
permission_name: { type: DataTypes.STRING(100), allowNull: false },
|
|
permission_description: { type: DataTypes.TEXT },
|
|
resource: { type: DataTypes.STRING(50), comment: 'Tài nguyên (students, grades, etc.)' },
|
|
action: { type: DataTypes.STRING(50), comment: 'Hành động (view, create, edit, delete)' },
|
|
is_active: { type: DataTypes.BOOLEAN, defaultValue: true },
|
|
created_at: { type: DataTypes.DATE, allowNull: false, defaultValue: DataTypes.NOW },
|
|
updated_at: { type: DataTypes.DATE, allowNull: false, defaultValue: DataTypes.NOW },
|
|
}, {
|
|
tableName: 'permissions',
|
|
timestamps: true,
|
|
underscored: true,
|
|
indexes: [
|
|
{ fields: ['permission_code'], unique: true },
|
|
{ fields: ['resource', 'action'] },
|
|
],
|
|
});
|
|
|
|
module.exports = Permission;
|