const { getDb } = require('../dbPool'); class RoleModel { /** * 모든 역할 목록을 조회합니다. * @returns {Promise} 역할 목록 */ static async findAll() { const db = await getDb(); const [rows] = await db.query('SELECT id, name, description FROM roles ORDER BY id'); return rows; } /** * ID로 특정 역할을 조회합니다. * @param {number} id - 역할 ID * @returns {Promise} 역할 객체 */ static async findById(id) { const db = await getDb(); const [rows] = await db.query('SELECT id, name, description FROM roles WHERE id = ?', [id]); return rows[0]; } /** * 역할에 속한 모든 권한을 조회합니다. * @param {number} roleId - 역할 ID * @returns {Promise} 권한 이름 목록 */ static async findPermissionsByRoleId(roleId) { const db = await getDb(); const [rows] = await db.query( `SELECT p.name FROM permissions p JOIN role_permissions rp ON p.id = rp.permission_id WHERE rp.role_id = ?`, [roleId] ); return rows.map(p => p.name); } } module.exports = RoleModel;