From 75c8829c3f8d65b9e143117310c2d470ce455a62 Mon Sep 17 00:00:00 2001 From: Matt Date: Tue, 28 Apr 2026 15:57:09 +0200 Subject: [PATCH] =?UTF-8?q?feat(db):=20add=20User.mentorOnboardingSentAt?= =?UTF-8?q?=20for=20one-shot=20onboarding=20email=20(=C2=A7D)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Single nullable DateTime column. No backfill. Catalog-only ALTER TABLE — sub-millisecond on PostgreSQL regardless of table size. The column is unused until the bulk role-update flow wires it up as an idempotency stamp for the mentor-onboarding email. Plan: docs/superpowers/plans/2026-04-28-pr6-multi-role-and-workspace-previews.md Spec: docs/superpowers/specs/2026-04-28-mentor-round-readiness-design.md §D --- .../20260428135613_add_mentor_onboarding_sent_at/migration.sql | 2 ++ prisma/schema.prisma | 3 +++ 2 files changed, 5 insertions(+) create mode 100644 prisma/migrations/20260428135613_add_mentor_onboarding_sent_at/migration.sql diff --git a/prisma/migrations/20260428135613_add_mentor_onboarding_sent_at/migration.sql b/prisma/migrations/20260428135613_add_mentor_onboarding_sent_at/migration.sql new file mode 100644 index 0000000..bd19e07 --- /dev/null +++ b/prisma/migrations/20260428135613_add_mentor_onboarding_sent_at/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "User" ADD COLUMN "mentorOnboardingSentAt" TIMESTAMP(3); diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 0d2db3a..5cfe1ec 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -302,6 +302,9 @@ model User { institution String? // User's institution/organization metadataJson Json? @db.JsonB + // Mentor onboarding email idempotency: stamped once when MENTOR role is first added. + mentorOnboardingSentAt DateTime? + // Profile bio String? // User bio for matching with project descriptions profileImageKey String? // Storage key (e.g., "avatars/user123/1234567890.jpg")