@@ -600,6 +600,21 @@ export async function moveOrgsBetweenMembers(
600600 )
601601}
602602
603+ function transformRoleToTargetEntity (
604+ role : IMemberOrganization ,
605+ mergeStrat : IMergeStrat ,
606+ ) : IMemberOrganization & { originalRoleId ?: string } {
607+ return {
608+ title : role . title ,
609+ dateStart : role . dateStart ,
610+ dateEnd : role . dateEnd ,
611+ memberId : mergeStrat . targetMemberId ( role ) ,
612+ organizationId : mergeStrat . targetOrganizationId ( role ) ,
613+ source : role . source ,
614+ originalRoleId : role . id ,
615+ }
616+ }
617+
603618export async function mergeRoles (
604619 qx : QueryExecutor ,
605620 primaryRoles : IMemberOrganization [ ] ,
@@ -633,20 +648,7 @@ export async function mergeRoles(
633648
634649 if ( currentRoles . length === 0 ) {
635650 // no current role in org1, add the memberOrganization to org1
636-
637- const transformedRole = {
638- title : memberOrganization . title ,
639- dateStart : memberOrganization . dateStart ,
640- dateEnd : memberOrganization . dateEnd ,
641- memberId : mergeStrat . targetMemberId ( memberOrganization ) ,
642- organizationId : mergeStrat . targetOrganizationId ( memberOrganization ) ,
643- source : memberOrganization . source ,
644- originalRoleId : memberOrganization . id , // Track which secondary role this came from
645- }
646-
647- // Add transformed role to primary entity
648- addRoles . push ( transformedRole )
649- // Remove the original role from secondary entity
651+ addRoles . push ( transformRoleToTargetEntity ( memberOrganization , mergeStrat ) )
650652 removeRoles . push ( memberOrganization )
651653 } else if ( currentRoles . length === 1 ) {
652654 const currentRole = currentRoles [ 0 ]
0 commit comments