console.log('🚀 开始修复权限...');

const { sequelize } = require('../config/database');
const Role = require('../models/Role');

async function fixPermissions() {
  try {
    console.log('📡 连接数据库...');
    
    // 测试数据库连接
    await sequelize.authenticate();
    console.log('✅ 数据库连接成功');
    
    // 查询当前agent角色
    console.log('🔍 查询当前agent角色...');
    const agentRole = await Role.findOne({ where: { name: 'agent' } });
    
    if (agentRole) {
      console.log('📋 当前agent角色权限:', agentRole.permissions);
      
      // 更新agent角色权限
      console.log('🔧 更新agent角色权限...');
      await agentRole.update({
        permissions: JSON.stringify(['insurance:read', 'insurance:create', 'policy:read', 'policy:create', 'claim:read', 'claim:create'])
      });
      
      console.log('✅ agent角色权限更新成功');
    } else {
      console.log('❌ 未找到agent角色');
    }
    
    // 查询所有角色权限确认
    console.log('📋 查询当前所有角色权限配置...');
    const roles = await Role.findAll();
    console.log('\n当前角色权限配置:');
    roles.forEach(role => {
      console.log(`${role.name}: ${role.permissions}`);
    });
    
  } catch (error) {
    console.error('❌ 执行失败:', error.message);
    console.error('错误详情:', error);
  } finally {
    await sequelize.close();
    console.log('\n✅ 数据库连接已关闭');
  }
}

fixPermissions().catch(console.error);