import { createDb } from "./src/client"; import { randomUUID } from "node:crypto"; process.env.DATABASE_URL = "postgres://rakazo:rakazodev@127.0.0.1:5433/rakazo"; const { prisma: db } = createDb(process.env.DATABASE_URL, { applicationName: "setup-user" }); const user = await db.user.findUnique({ where: { email: "ingo.wagner1303@gmail.com" }, select: { id: true, name: true }, }); if (!user) { console.log("User nicht gefunden!"); await db.$disconnect(); process.exit(1); } console.log("User:", user); // Step 1: Get or create Organization let org = await db.organization.findUnique({ where: { slug: "ingo-workspace" } }); if (!org) { org = await db.organization.create({ data: { id: randomUUID(), name: "Ingo's Workspace", slug: "ingo-workspace", createdAt: new Date(), }, select: { id: true, name: true, slug: true }, }); console.log("Organization created:", org); } else { console.log("Organization exists:", org); } // Step 2: Get or create Organization Member let member = await db.member.findUnique({ where: { organizationId_userId: { organizationId: org.id, userId: user.id }, }, }); if (!member) { member = await db.member.create({ data: { id: randomUUID(), userId: user.id, organizationId: org.id, role: "owner", createdAt: new Date(), }, }); console.log("Organization member created"); } else { console.log("Organization member exists"); } // Step 3: Get or create default Space let space = await db.space.findFirst({ where: { organizationId: org.id, isDefault: true }, }); if (!space) { space = await db.space.create({ data: { id: randomUUID(), name: "Mein Space", isDefault: true, createdByUserId: user.id, organizationId: org.id, }, select: { id: true, name: true }, }); console.log("Space created:", space); } else { console.log("Space exists:", space); } // Step 4: Get or create space member const existingMember = await db.spaceMember.findUnique({ where: { spaceId_userId: { spaceId: space.id, userId: user.id }, }, }); if (!existingMember) { await db.spaceMember.create({ data: { id: randomUUID(), spaceId: space.id, organizationId: org.id, userId: user.id, role: "owner", createdAt: new Date(), }, }); console.log("Space member created"); } else { console.log("Space member exists"); } // Verify const finalSpaces = await db.space.findMany({ where: { organization: { members: { some: { userId: user.id } } } }, select: { id: true, name: true, isDefault: true }, }); console.log("\nUser spaces:", JSON.stringify(finalSpaces, null, 2)); await db.$disconnect(); console.log("\nDone!");