fix: add missing seed-team-leads.ts required by docker entrypoint
All checks were successful
Build and Push Docker Image / build (push) Successful in 8m58s
All checks were successful
Build and Push Docker Image / build (push) Successful in 8m58s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
52
prisma/seed-team-leads.ts
Normal file
52
prisma/seed-team-leads.ts
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
/**
|
||||||
|
* Idempotent sync: ensure every project with a submittedByUserId has a
|
||||||
|
* corresponding TeamMember(LEAD) record. Safe to run on every deploy.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { PrismaClient } from '@prisma/client'
|
||||||
|
|
||||||
|
const prisma = new PrismaClient()
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
const projects = await prisma.project.findMany({
|
||||||
|
where: { submittedByUserId: { not: null } },
|
||||||
|
select: {
|
||||||
|
id: true,
|
||||||
|
submittedByUserId: true,
|
||||||
|
teamMembers: { select: { userId: true } },
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const toCreate: Array<{ projectId: string; userId: string; role: 'LEAD' }> = []
|
||||||
|
|
||||||
|
for (const project of projects) {
|
||||||
|
if (!project.submittedByUserId) continue
|
||||||
|
const alreadyLinked = project.teamMembers.some(
|
||||||
|
(tm) => tm.userId === project.submittedByUserId
|
||||||
|
)
|
||||||
|
if (!alreadyLinked) {
|
||||||
|
toCreate.push({
|
||||||
|
projectId: project.id,
|
||||||
|
userId: project.submittedByUserId,
|
||||||
|
role: 'LEAD',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (toCreate.length > 0) {
|
||||||
|
await prisma.teamMember.createMany({
|
||||||
|
data: toCreate,
|
||||||
|
skipDuplicates: true,
|
||||||
|
})
|
||||||
|
console.log(`✓ Linked ${toCreate.length} project submitters as TeamMember(LEAD)`)
|
||||||
|
} else {
|
||||||
|
console.log('✓ All project submitters already linked — nothing to do')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
.catch((e) => {
|
||||||
|
console.error('Team lead sync failed:', e)
|
||||||
|
process.exit(1)
|
||||||
|
})
|
||||||
|
.finally(() => prisma.$disconnect())
|
||||||
Reference in New Issue
Block a user