57 lines
1.5 KiB
TypeScript
57 lines
1.5 KiB
TypeScript
import { db, organizationmember } from '@db/drizzle';
|
|
|
|
interface SeedOrganizationMember {
|
|
testOrgId: string;
|
|
adminUserId: string;
|
|
studentUserId: string;
|
|
enterpriseOrgId: string;
|
|
enterpriseAdminUserId: string;
|
|
enterpriseStudentUserId: string;
|
|
}
|
|
|
|
export async function seedOrganizationMember({
|
|
testOrgId,
|
|
adminUserId,
|
|
studentUserId,
|
|
enterpriseOrgId,
|
|
enterpriseAdminUserId,
|
|
enterpriseStudentUserId
|
|
}: SeedOrganizationMember) {
|
|
const existingOrgMembers = await db.select().from(organizationmember);
|
|
const existingOrgMemberKeys = existingOrgMembers.map((om) => `${om.organizationId}-${om.profileId}`);
|
|
|
|
const orgMembersToInsert = [
|
|
{
|
|
organizationId: testOrgId,
|
|
roleId: 1, // ADMIN
|
|
profileId: adminUserId,
|
|
verified: false
|
|
},
|
|
{
|
|
organizationId: testOrgId,
|
|
roleId: 3, // STUDENT
|
|
profileId: studentUserId,
|
|
verified: false
|
|
},
|
|
{
|
|
organizationId: enterpriseOrgId,
|
|
roleId: 1, // ADMIN
|
|
profileId: enterpriseAdminUserId,
|
|
verified: false
|
|
},
|
|
{
|
|
organizationId: enterpriseOrgId,
|
|
roleId: 3, // STUDENT
|
|
profileId: enterpriseStudentUserId,
|
|
verified: false
|
|
}
|
|
].filter((om) => !existingOrgMemberKeys.includes(`${om.organizationId}-${om.profileId}`));
|
|
|
|
if (orgMembersToInsert.length > 0) {
|
|
await db.insert(organizationmember).values(orgMembersToInsert);
|
|
console.log(` ✓ Inserted ${orgMembersToInsert.length} organization member(s)`);
|
|
} else {
|
|
console.log(' ✓ Organization members already exist, skipping');
|
|
}
|
|
}
|