#!/usr/bin/env tsx /** * Standalone script to create a PBAC-enabled organization with custom roles * Run with: npx tsx packages/prisma/seed-pbac-only.ts */ import { createPBACOrganization } from "./seed-pbac-organization"; async function main() { console.log("šŸš€ Starting PBAC organization seed..."); try { const result = await createPBACOrganization(); console.log("\nšŸŽ‰ PBAC Organization created successfully!"); console.log("\nšŸ“‹ Summary:"); console.log(`Organization: ${result.organization.name} (${result.organization.slug})`); console.log(`Custom Roles: ${Object.keys(result.customRoles).length}`); console.log(`Users: ${result.users.length}`); console.log(`Team: ${result.team?.name || "None"} (${result.team?.slug || "N/A"})`); console.log("\nšŸ” Login Credentials:"); result.users.forEach(({ user, role, customRole }) => { const roleText = customRole ? `${role} + ${customRole}` : role; console.log(` - ${user.name}: ${user.email} / password (${roleText})`); }); console.log(`\n🌐 Access URLs:`); console.log(`Organization: ${process.env.NEXT_PUBLIC_WEBAPP_URL}/org/${result.organization.slug}`); if (result.team) { console.log(`Team: ${process.env.NEXT_PUBLIC_WEBAPP_URL}/team/${result.team.slug}`); } } catch (error) { console.error("āŒ Error creating PBAC organization:", error); process.exit(1); } } main() .then(() => { console.log("\nāœ… Seed completed successfully!"); process.exit(0); }) .catch((error) => { console.error("āŒ Seed failed:", error); process.exit(1); });