From e249a6f0b227def21617ff32d29aca616b7121a2 Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Sat, 16 May 2026 15:23:19 +0100 Subject: [PATCH] MAI CALL - step 2 --- .claude/settings.local.json | 3 ++- packages/db/prisma/seed.ts | 23 ++++++++++++++++++----- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 01f4e42..05ca200 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -18,7 +18,8 @@ "PowerShell(corepack pnpm exec prisma migrate status --schema packages/db/prisma/schema.prisma 2>&1)", "PowerShell($env:npm_config_verify_deps_before_run = \"false\"; corepack pnpm exec prisma migrate status --schema packages/db/prisma/schema.prisma 2>&1 | Select-Object -Last 25)", "Bash(pnpm --filter @repo/db exec prisma migrate dev --name add_maintenance_request)", - "Bash(pnpm --filter @repo/db exec prisma db execute --schema=prisma/schema.prisma --stdin)" + "Bash(pnpm --filter @repo/db exec prisma db execute --schema=prisma/schema.prisma --stdin)", + "Bash(docker exec *)" ] } } diff --git a/packages/db/prisma/seed.ts b/packages/db/prisma/seed.ts index 523dcf2..c2104c1 100644 --- a/packages/db/prisma/seed.ts +++ b/packages/db/prisma/seed.ts @@ -13,6 +13,14 @@ const prisma = new PrismaClient(); const DEMO_TENANT_NAME = 'Demo Factory'; const DEMO_ADMIN_EMAIL = 'admin@demo.local'; +const OPERATOR_EMAILS = ['op1@demo.local', 'op2@demo.local', 'op3@demo.local']; + +const WORKSTATIONS = [ + { code: 'CTR04', name: 'Controlo 04', area: 'Montagem' }, + { code: 'QVN_RTL_2', name: 'Retificação Visual 2', area: 'Qualidade' }, + { code: 'MTG_01', name: 'Montagem 01', area: 'Montagem' }, +]; + async function main() { // Idempotent: if a prior run created the demo tenant, wipe it and recreate. // Cascade deletes on the relations handle the children. @@ -33,15 +41,20 @@ async function main() { }, }); + await prisma.user.createMany({ + data: OPERATOR_EMAILS.map((email) => ({ + tenantId: tenant.id, + email, + role: UserRole.OPERATOR, + })), + }); + await prisma.workstation.createMany({ - data: [ - { tenantId: tenant.id, code: 'WS-001', name: 'Assembly A', area: 'Floor 1' }, - { tenantId: tenant.id, code: 'WS-002', name: 'Packaging B', area: 'Floor 2' }, - ], + data: WORKSTATIONS.map((ws) => ({ tenantId: tenant.id, ...ws })), }); console.warn( - `Seed complete — tenant=${tenant.id} (${tenant.name}), admin=${DEMO_ADMIN_EMAIL}, workstations=2`, + `Seed complete — tenant=${tenant.id} (${tenant.name}), admin=${DEMO_ADMIN_EMAIL}, operators=${OPERATOR_EMAILS.length}, workstations=${WORKSTATIONS.length}`, ); }