{"level":"info","message":"PostgreSQL connected","timestamp":"2026-09-30T12:38:52.014Z"}
{"level":"info","message":"Server running at http://localhost:3000","timestamp":"2026-09-30T12:38:52.036Z"}
{"level":"error","message":"Seed failed \nInvalid `prisma.role.upsert()` invocation in\n/var/www/api/prisma/seed.ts:107:47\n\n  104 async function main() {\n  105   const roleByName: Record<string, { id: number }> = {};\n  106   for (const role of ROLES) {\n→ 107     roleByName[role.name] = await prisma.role.upsert(\nThe table `public.roles` does not exist in the current database.","timestamp":"2026-09-30T12:40:53.120Z"}
{"level":"info","message":"Seeded roles: admin, user, organization-admin, director, project-manager, planning-manager, site-engineer, qs, procurement, accounts, sales-executive, viewer","timestamp":"2026-09-30T13:54:49.919Z"}
{"level":"info","message":"Seeded tenant role access (modules & permissions) for the default business roles","timestamp":"2026-09-30T13:54:50.233Z"}
{"level":"info","message":"Seeded permissions: units.create, units.update, units.delete","timestamp":"2026-09-30T13:54:50.250Z"}
{"level":"info","message":"Granted all seeded permissions to 'admin'","timestamp":"2026-09-30T13:54:50.255Z"}
{"level":"info","message":"Seeded plans: STARTER, GROWTH, ENTERPRISE","timestamp":"2026-09-30T13:54:50.282Z"}
{"level":"info","message":"Seeded 16 platform modules","timestamp":"2026-09-30T13:54:50.337Z"}
{"level":"info","message":"Seeded platform settings (defaults)","timestamp":"2026-09-30T13:54:50.345Z"}
{"level":"info","message":"Seeded super admin DB row: superadmin@blenaxis.dev","timestamp":"2026-09-30T13:54:50.917Z"}
{"level":"info","message":"PostgreSQL connected","timestamp":"2026-09-30T13:55:14.233Z"}
{"level":"info","message":"Server running at http://localhost:3000","timestamp":"2026-09-30T13:55:14.251Z"}
