import { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient(); async function main() { console.log('๐Ÿ” ๆŸฅ่ฏข่ง’่‰ฒๅ’Œๆƒ้™...'); // ่Žทๅ–ๆ‰€ๆœ‰่ง’่‰ฒ const roles = await prisma.role.findMany({ select: { id: true, name: true, code: true, tenantId: true } }); console.log('่ง’่‰ฒ:', roles); // ่Žทๅ– homework ๆƒ้™ const homeworkPerms = await prisma.permission.findMany({ where: { resource: 'homework' }, select: { id: true, code: true, tenantId: true } }); console.log('Homework ๆƒ้™:', homeworkPerms); // ไธบๆฏไธช่ง’่‰ฒๅˆ†้…ๆ‰€ๆœ‰ homework ๆƒ้™ for (const role of roles) { console.log(`\n๐Ÿ” ไธบ่ง’่‰ฒ "${role.name}" ๅˆ†้…ๆƒ้™...`); const permsForTenant = homeworkPerms.filter(p => p.tenantId === role.tenantId); for (const perm of permsForTenant) { const existing = await prisma.rolePermission.findFirst({ where: { roleId: role.id, permissionId: perm.id, } }); if (!existing) { await prisma.rolePermission.create({ data: { roleId: role.id, permissionId: perm.id, } }); console.log(` โœ… ๅทฒๅˆ†้… ${perm.code}`); } else { console.log(` โญ๏ธ ${perm.code} ๅทฒๅˆ†้…`); } } } console.log('\nโœ… ๆƒ้™ๅˆ†้…ๅฎŒๆˆ๏ผ่ฏท้‡ๆ–ฐ็™ปๅฝ•ไปฅๅˆทๆ–ฐๆƒ้™ใ€‚'); } main() .catch(console.error) .finally(() => prisma.$disconnect());