Files
sena_db_api_layer/models/Role.js
2026-01-19 09:33:35 +07:00

65 lines
1.4 KiB
JavaScript

const { DataTypes } = require('sequelize');
const { sequelize } = require('../config/database');
/**
* Roles Model - Danh sách 9 vai trò trong hệ thống
*/
const Role = sequelize.define('roles', {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
},
role_code: {
type: DataTypes.STRING(50),
unique: true,
allowNull: false,
comment: 'Mã vai trò (system_admin, center_manager, etc.)',
},
role_name: {
type: DataTypes.STRING(100),
allowNull: false,
comment: 'Tên vai trò',
},
role_description: {
type: DataTypes.TEXT,
comment: 'Mô tả vai trò',
},
level: {
type: DataTypes.INTEGER,
defaultValue: 0,
comment: 'Cấp độ vai trò (0=cao nhất)',
},
is_system_role: {
type: DataTypes.BOOLEAN,
defaultValue: false,
comment: 'Vai trò hệ thống không thể xóa',
},
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: 'roles',
timestamps: true,
underscored: true,
indexes: [
{ fields: ['role_code'], unique: true },
{ fields: ['level'] },
{ fields: ['is_active'] },
],
comment: 'Bảng quản lý vai trò (9 vai trò)',
});
module.exports = Role;