-- Sprint K : tokens d'invitation CE_MEMBER. -- Le CE_MANAGER génère un lien /inscription?invite=TOKEN, le destinataire s'inscrit -- automatiquement comme CE_MEMBER de l'organisation. usedAt à la consommation. CREATE TABLE "OrgInviteToken" ( "tokenHash" TEXT NOT NULL, "organizationId" TEXT NOT NULL, "email" TEXT, "createdByUserId" TEXT, "expiresAt" TIMESTAMP(3) NOT NULL, "usedAt" TIMESTAMP(3), "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "OrgInviteToken_pkey" PRIMARY KEY ("tokenHash") ); CREATE INDEX "OrgInviteToken_organizationId_idx" ON "OrgInviteToken"("organizationId"); CREATE INDEX "OrgInviteToken_expiresAt_idx" ON "OrgInviteToken"("expiresAt"); ALTER TABLE "OrgInviteToken" ADD CONSTRAINT "OrgInviteToken_organizationId_fkey" FOREIGN KEY ("organizationId") REFERENCES "Organization"("id") ON DELETE CASCADE ON UPDATE CASCADE;