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;